字符数组和数组的定义是一样的,赋值也和数组差不多,只不过字符数组用来存放字符。其实我感觉用起来也是一样的。
字符数组的引用
#include <stdio.h>
int main()
{
int i,j;
chara[][5]=
{
{'B','A','S','I','C'},
{'d','B','A','S','E'}
};
for(i=0;i<=1;i++)
{
for(j=0;j<5;j++)
{
printf("%c ",a[i][j]);
}
printf("\n");
}
}
在C语言中没有专门的字符串变量,通常用一个字符数组来存放一个字符串。当把一个字符串存入数组时,也把结束符‘\0’存入数组,并以此作为该字符串的结束标志。有了‘\0’以后,就不必再用字符数组的长度来判断字符串的长度了。
C语言允许使用字符串的方式对数组作初始化赋值。
例:char c[]={'C',' ','p','r','o','g','r','a','m'};
可写为:char c[]={"C program"};或去掉{} 写为:char c[]="C program";
字符数组的输入输出:
除了上述赋值方法以外还可以使用printf,scanf函数直接输入输出;
字符串处理函数:
- puts()字符串输出函数
一般形式:puts(字符数组名)
功能:把字符数组中的字符串输出到显示器:
int main()
{
char c[]="string666";
puts(c);
return 0;
}
但系统会显示有问题,所以老师给我们一个mygets的函数。
#include <stdio.h>
void mygets(char *ch,int size)
{
int i=0;
for(i=0;i<size-1;i++)
{
ch[i]=getchar();
if(ch[i]=='\n')
break;
}
ch[i]='\0';
if(i==size-1)
{
while(getchar()!='\n');
}
}
- gets()字符串输入函数
一般格式:gets(字符数组名)
功能;从标准输入设备上输入一个字符串
int main()
{
cahr st[15];
printf("input st:");
gets(st);
puts(st);
return 0;
}
strcat:字符串连接函数
一般形式:strcat(字符数组名1,字符数组名2)
功能:把字符串2中的字符串连接到字符数组1中字符串后面,并删除数组1中的‘\0’.strcpy:字符串拷贝函数
一般形式:strcpy(字符数组名1,字符数组名2)
功能:把字符数组2中的字符串拷贝到字符数组1中。结束标志‘\0’也一同拷贝,。注意:要求字符数组1要足够长,否则不能全部装入所拷贝的字符串。strlen:测试字符串长度
一般形式:strlen(字符数组名)
功能:测试字符串的实际长度(不含字符串结束标志‘\0’)并作为函数返回值。