1、字符数组的定义
2、字符数组的初始化
3、字符数组的引用
4、字符串常量和字符数组
注:字符数组也分一维字符数组、二维字符数组和多维字符数组,与前面存储数值的一维数组、二维数组和多维数组的相关概念是类似的,只是需要注意一下字符数组中是否有字符串结束符’\0’。
5、字符数组的输入输出
6、字符数组的应用举例
- 输入一个学生的姓名,并输出。
对于这个问题,输入时注意结束边界是回车符,输出时注意结束符为’\0’。此外,可以使用%s来输入和输出姓名,注意使用%s输入姓名时不能输入带空格的姓名,需要使用gets()函数才行。具体代码和结果如下:
#include "stdio.h"
int main()
{
int count=0 ,i; /*count用于统计姓名的字符个数*/
char name[20];
printf("\nInput your name:");
for(i=0; ;i++)
{
scanf("%c",&name[i]);
if(name[i]=='\n')
break;
count++;
}
name[i]='\0'; /*设置字符串结束标志*/
printf("Your name is:");
for(i=0;i<count;i++)
printf("%c",name[i]);
return 0;
}
改使用%s输入输出姓名,代码和结果如下:
#include "stdio.h"
int main()
{
int count=0 ,i; //count用于统计姓名的字符个数
char name[20];
printf("\nInput your name:");
scanf("%s",name);
printf("Your name is:");
printf("%s",name);
return 0;
}
从上面看,不输入带空格的字符串,改用gets(),代码和结果如下:
#include "stdio.h"
int main()
{
int count=0 ,i; //count用于统计姓名的字符个数
char name[20];
printf("\nInput your name:");
gets(name);
printf("Your name is:");
printf("%s",name);
return 0;
}
注:还有就是要注意:若上下文有多个输入数据时,一定要在字符或字符串的输入语句前增加getchar()来消除输入缓存中的一个字符,或者增加fflush(stdin)来消除输入缓存中的所有字符,否则输入会错位,造成输入数据不正确。这一点在前面讲输入输出语句时讲过。