学习目标:
掌握字符串的概念
掌握字符串遍历输入输出
重点:
字符串的特点
字符串逐个输出,遍历循环条件的写法
难点:
%c格式输入输出,使用数组名
一、字符串的概念
1.字符串和字符串结束标志
字符串常量是用双引号括起来的一串字符。
C语言系统在处理字符串时,一般会在其末尾自动添加一个´\0´作为字符串结束符。在遇到字符‘\0’时,表示字符串结束。
字符‘\0’也为ASCII字符,码值为0,字符‘0’码值为46,注意两个是不一样的字符。
2.字符与字符串的区别
字符为一个字符,引用用单引号。字符存入字符变量中,一个字符变量存一个字符。
如 char c=‘A’;
字符串两个以上字符组合,引用用双引号。没有字符串变量,字符串只能存入字符数组。
如“A”,其实有两个字符‘A’和‘\0’。
二、字符串的初始化
1.使用字符串常量进行数组初始化
char c[ ]={“I am happy”};
等价 char c[]=“I am happy”;
等价 char c[ ]={‘I’, ‘ ‘, ‘a’, ‘m’, ‘h’, ‘a’, ‘p’, ‘p’,‘y’,’\0’};
注:(1)系统对字符串常量自动加一个‘\0’
(2)字符数组并不要求它的最后一个字符为‘\0’
(3)定义时char c[]不用指定字符数组大小,此时数组大小已经确定为字符串长度+1。
2.数组长度始终保证大于字符串实际长度
char c[10]={“ABCDE”}; //第5个元素\0,第6个开始为空字符ASCⅡ值为0
char c[10]={‘A’,‘B’,‘C’,‘D’,‘E’}; //后面5个元素为空字符ASCⅡ值为0
三、字符串的输入输出
字符串存入字符数组,输入输出可以用两种格式控制符“%c”和“%s”。
1.(1)利用For循环逐个字符输入输出。使用格式符“%c”进行。
scanf ( “%c”, &c[i]);
printf(“%c”,c[i]);
(2)利用For循环逐个字符输入输出。是否为字符串结束符‘\0’作为For循环结束条件(c[!]!=’\0’),使用格式符“%c”进行。
2.(1)整个字符串一次输入输出。使用格式符“%s”进行。
char c[ ]={“abcde”};
printf(“ %s” , c ) ; //为数组名,不能为“ %s” , c[0](错的)
(2)可以用scanf 函数输入一个字符串
char c[6];
scanf ( “%s”, c );
printf(“ %s”, c );
注意:键盘输入不能超过5个字符
%s输入时,c不用加地址符&,即&c(错的);因为c为数组名,代表数组的起始地址。
例9.1字符串输入输出

