文档介绍:字符数组与字符串
字符数组
用于存放字符型数据的数组称为字符数组。一个数组元素只能存放一个字符。
说明字符数组的一般形式如下:
char 数组名[常量表达式];
例如:
char c[14];
字符数组的定义
字符数组的初始化
①逐个初始化数组
与其它数组一样:
例如:char c1[8]={'G', 'o', 'o', 'd', ' ', 'b', 'y','e', '!'};
字符数组元素经上述赋值语句赋值后,在计算机内存中的存放形式如图所示
当初始化值的个数少于元素个数时,从第一个数组元素开始赋值,剩余元素为空。
字符数组的初始化
②用字符串初始化
字符数组中可以存放若干个字符,也可以存放字符串。两者的区别是字符串有一个结束符(‘\0’)。
反过来说,在一维数组中存放着带有结束符的若干字符称为字符串。
例如:char c2[8]={'G', 'o', 'o', 'd', ' ', 'b', 'y','e', ,'\0'};
即在数组c2中存放着一个字符串“Goodbye”。
用一个字符串初始化一个数组时,可以写成下列形式:
char c2[8]="Goodbye";
使用此格式要注意字符串的长度应小于字符数组的长度或者等于数组的大小减1。
字符数组的初始化
③初始化时省略长度
例如:char s3[ ]= "Good morning!";
字符是由单引号括起来,字符串是由双引号。
字符只能是单个字符,字符串是可以是多个字符。
可以把一个字符赋值给一个字符串变量,不能把字符串赋值给一个字符变量
字符占一个字节,字符串占用的字节数等于字符个数加1。例如:字符'a'占一个字节,字符串"a"占两个字节。
字符与字符串的区别:
逐个字符输入输出。用格式符“%c”输入或输出一个字符。
将整个字符串一次输入或输出。用格式符“%s”,输入或输出字符串(string)。
字符数组的输入输出
从键盘输入一个字符数组可以使用scanf语句或gets语句。
1)scanf语句
格式:scanf("%s",字符串名称);
说明:
①这里的字符串名称之前不加&。例如,scanf("%s",&s1)是错误的。
②系统会自动在输入的字符串后添加“\0”标志,因此输入时,仅输入字符串内容即可。
③输入多个字符串时,以空格分格。
例如,scanf("%s%s%s",s1,s2,s3);若输入Let it go,则s1,s2,s3分别取了三个单词。
例如,scanf("%s",s1);若输入Let it go,则s1只取得第一个单词Let。
1输入
从键盘输入一个字符数组可以使用scanf语句或gets语句。
1)gets语句
格式:gets(字符串名称);
说明:
①使用gets只能输入一个字符串,例如,gets(s1,s2)是错误的。
②使用gets,是从光标开始的地方,读到换行符(按回车键的时候),也就是说读入一整行,而使用scanf是从光标开始的地方读到空格。
例如,scanf("%s",s1); gets(s2);
对于相同的输入Hello World!。s1获取的结果是Hello,而s2获取的结果是Hello World!
1输入