课堂练习:判断charstl="china";与下列等价?10;i.n'.'a.D char stll=c②char stl="china":③char st l='c',"h','i','n','a'思考:判断charst10l="china";与下列等价?Dcharstl10]=ca:n:注意:在用字符数组来存放某个字符串常量时,如果要指定字符数组的大小,那么其大小至少要比字符串的长度大1(多定义一个字节用于存放10)
课堂练习:判断char st[ ] = "china"; 与下列等价? ① char st[ ] = {'c', 'h', 'i', 'n', 'a', '\0'}; ② char st[ ] = {"china"}; ③ char st[ ] = {'c', 'h', 'i', 'n', 'a'}; 思考:判断char st[10] = "china"; 与下列等价? ① char st[10] = {'c', 'h', 'i', 'n', 'a'}; √ √ √ 注意: 在用字符数组来存放某个字符串常量时,如果要指 定字符数组的大小,那么其大小至少要比字符串的长度 大1(多定义一个字节用于存放'\0')
10.3字符数组的输入输出1、逐个字符输入输出例1:for循环实现@ int i;char s[10];for(i=0;i<10;i++)②1abc12车可以作为字符读入scanf("%c"&s[]);ABCDEF③④for(i=0;i<10;i++)abc12printf("%c",s[i]);?ABCi=0;例2:while循环实现:1@inti=0;char ch,s[10]while (s[i]!='l0')②scanf("%c",&ch);1/第1个字符printf("%c",s[])3while(ch!='n')31i++;ab123q(s=ch;人?scanf("%c",&ch);l/下1个字符i+t;ab123区别:例1:必须输入10个字符s[]="10;8例2:回车结束
例1:for 循环实现 ① int i;char s[10]; ② for (i=0;i<10;i++) ③ scanf("%c" ,&s[i]); //空格、回车可以作为字符读入 ④ for (i=0;i<10;i++) ⑤ printf("%c",s[i]); 10.3 字符数组的输入输出 1、逐个字符输入输出 例2:while 循环实现: ① int i=0; char ch, s[10]; ② scanf("%c", &ch); //第1个字符 ③ while(ch!= '\n') ④ { s[i] = ch; ⑤ scanf("%c", &ch);//下1个字符 ⑥ i++; ⑦ } ⑧ s[i] ='\0'; ① i=0; ② while (s[i]!='\0') ③ { printf("%c",s[i]); ④ i++; ⑤ } 区别: 例1:必须输入10个字符 例2:回车结束
注意:多组输入一举例2、整个字符数组输入char s[100];while (get(s)!-NULL)①gets函数或while(get(s))1/多组输入格式:gets字符数组名)//应包含的.h文件stdio.h功能:以回车束的字荐串放入字待数组中,并自动加0例1:char st[80];gets (st);当输入:Ilove口china!(口表示空格,表示回车)时st中的字符串将是:"lovechina!scanf函数2格式:scanf("%s",字符数组名)1应包含的.h文件stdio.h功能:以空格或回车结来的宇符串放入字待数组中,并自动加0例2:chars1[40],s2[40],s3[40];scanf ("%s%s%s", sl, s2, s3);输入:口Ilovechina!sl:"l", s2: "love", s3: "china!"例3:使用%ns格式控制符限制输入的字符个数。char s[20];scanf"%9s",s);//最多可读入9个非空格字符到st中
2 、整个字符数组输入 格式:gets(字符数组名) //应包含的.h文件stdio.h 功能:以回车结束的字符串放入字符数组中,并自动加'\0 ' 例1:char st[80]; gets (st); 当输入:I□love□china!↙(□表示空格,↙表示回车)时, st中的字符串将是:"I love china!" ① gets函数 ② scanf函数 格式:scanf("%s" , 字符数组名) //应包含的.h文件 stdio.h 功能:以空格或回车结束的字符串放入字符数组中,并自动加'\0’ 注意:多组输入—举例 char s[100]; while (get(s)!=NULL) 或 while (get(s)) //多组输入 例2:char s1[40], s2[40], s3[40]; scanf ("%s%s%s", s1, s2, s3); 输入:□□I□love□china!↙ s1:"I",s2:"love",s3:"china!” 例3:使用%ns格式控制符 限制输入的字符个数。 char s[20]; scanf ("%9s", s); //最多可读入9个非空格字符到st中
gets函数与scanf函数的区别scanfgets输入的字符串中不能包含空输入的字符串中可包含空格字符格字符,遇到空格自动结束2②只能输入一个字符串可连续输入多个字符串(使用%s%s...)③不能限定字符串的长度③能限定字符串的长度(使用%ns1遇到回车符结束遇到空格符或回车符结束接受回车③不接受回车
gets函数与scanf函数的区别 gets scanf ① 输入的字符串中可包含 空格字符 ① 输入的字符串中不能包含空 格字符,遇到空格自动结束。 ② 只能输入一个字符串 ② 可连续输入多个字符串(使 用%s%s.) ③ 不能限定字符串的长度 ③ 能限定字符串的长度(使用 %ns) ④ 遇到回车符结束 ④ 遇到空格符或回车符结束 ⑤接受回车 ⑤不接受回车
3、整个字符数组输出①puts函数/应包含的.h文件stdio.h格式:puts(字符串地址或字符数组名)功能:向显示器输出字符串(输出完自动换行说明:如果是字待数组则必须以0结束例1: char str[]= "Ilove china!";输出结果:Ilovechina!puts (str);IloveZibo!puts ("Ilove Zibo!");printf函数2格式:printf(“%s",字符串地址或字符数组名)//应包含的.h文件stdio.h功能:依次输出字荐串中的每个字符直到退到字荐八00不会被输出例2:charnamel="JohnSmith"输出结果:1:John Smith①printf("1:%sln",name);2:Smith②printf("2:%sln",&name5D;3:abc③printf("3:%sn","abc");
格式:puts(字符串地址或字符数组名) //应包含的.h文件 stdio.h 功能:向显示器输出字符串(输出完自动换行) 说明:如果是字符数组,则必须以'\0'结束 ① puts函数 例1:char str[ ] = "I love china! "; puts (str); puts ("I love Zibo! "); 输出结果: I love china! I love Zibo! ② printf函数 格式:printf(“%s” , 字符串地址或字符数组名) //应包含的.h文件stdio.h 功能:依次输出字符串中的每个字符直到遇到字符'\0 ' ('\0'不会被输出) 例2:char name[ ] = "John Smith"; ①printf ("1: %s\n", name); ②printf ("2: %s\n", &name[5]); ③printf ("3: %s\n", "abc"); 输出结果: 1: John Smith 2: Smith 3: abc 3、整个字符数组输出