
表示:用双引号括起来的一串字符。
如"abc", "姓名", "2456.0"
字符串存储:用一维字符数组存储,最后存储一个空字符’\0’,即ASCII码为0的字符。
字符串的长度:等于所包含的ASCII码字符的个数,每个汉字等于2个ASCII码字符。
字符数组存储字符串的条件:字符数组长度必须大于等于待存字符串的长度加1。
例如:存储字符串"array",串长度为5/p>
实际存储的内容:"array\0",需数组长度至少为6
在数组空间中的表示:
利用字符串初始化字符数组
如:char a[10]= "Max:"; //a[0]= 'M' a[1]= 'a' a[2]= 'x' a[3]= ':'
字符串的输入和输出
输入: scanf("%s",a)或gets(a) //前者以空格或回车,后者以回车结束
输出: printf("%s",a)或puts(a) //后者相当于printf("%s\n",a)
利用二维字符数组表示和存储若干个字符串
char b[3][10]={"well","good","pass"};
for(i=0; i<3; i++) puts(b[i]); //利用行下标输出每个字符串
对字符串进行比较大小、复制、连接、求长度等操作是通过C语言函数库中提供的字符串函数实现的,使用这些函数时必须包含头文件string.h。
待处理字符串:a[10]="abcd"; b[10]="efg"; c[10]="";
(1) 求字符串长度函数strlen(x)
求出x所表示的字符串中的字符个数。
参数x可以是字符串常量、一维字符数组名、二维字符数组中的单下标变量。
strlen(a)=4 strlen(b)=3
strlen(c)=0 strlen("字符串长度")=10
(2) 字符串复制(拷贝)函数strcpy(x,y)
把字符串y复制到字符串x中。x和y都是字符指针(数组)参数。
strcpy(c,a); //c内容也为"abcd"
不允许字符串的直接赋值操作:c=a;
(3) 字符串连接函数strcat(x,y)
把字符串y复制到字符串x的末尾。
strcat(c,"58"); c:"abcd58" c字符数组长度为10,字符串长度为6
strcat(c,b); c:"abcd58efg" b: "efg" c中字符串长度为9
strlen(x)+strlen<x数组长度
(4) 字符串比较函数strcmp(x,y)
比较字符串x和字符串y的大小,前者大返1,后者大返-1,相等返0
strcmp(a,b)=-1
strcmp(a, "abak")=1
strcmp(b, "efg")=0
字符串比较只能采用比较函数strcmp(),不能采用比较运算符。a>b