strcat(字符数组1,字符数组2)
其作用是把两个字符数组中的字符串连接起来,把字符串2接到1后面,结果放到字符串1中。
编写源程序 8-6.c:
#include<stdio.h>
#include<string.h> //在使用字符串处理函数时,在程序文件的开头用#include<string.h> int main() { char str1[30] = "People's Republic of'"; char str2[] = "China"; printf("%s",strcat(str1,str2)); return 0; }
运行结果:
注意:
- 连接前两个字符串后面都有 '\0',连接时将字符串 1 后面的 '\0' 取消,只在新串后面保留 '\0'。
- 字符串 1 必须足够大,以便于容纳字符串 2。如果在定义是定义为
char str1[]="People's Republic of";
就会出现问题,因为长度不够。
2.4.2 strlen
函数-测字符串长度的函数
其一般形式如下:
strlen(字符数组)
它是测量字符串长度的函数。函数的值为字符串中的实际长度。例如:
char str[] = "China";
printf("%d",strlen(str));
注意:
- strlen() 返回的值比实际占用的长度要小,因为不包含 '\0'。
2.4.3 strcpy
——字符串复制函数
其一般形式如下:
strcpy(字符串 1,字符串 2)
作用是将字符串 2 复制到字符串 1 中。例如:
char str1[10],str2[] = "China";
strcpy(str1,str2);
注意:
- 字符数组 1 必须定义的足够大,以便容纳被复制的字符串 2。
- “字符数组 1” 必须写成数组名形式(如str1),“字符串 2”可以使字符数组名,也可以是一个字符串常量。例如:
strcpy(str1,"China");
作用与前面的相同。- 不能用赋值语句将一个字符串常量直接给一个字符数组。如下面两行是错误的:
str1 = "shiyanlou"; //错误,企图用赋值语句将一个字符串常量直接赋值给一个数组 str1 = str2; //错误,企图用赋值语句将一个字符数组直接赋给另一个字符数组
2.4.4 strcmp
——字符串比较函数
其一般形式如下:
strcmp(字符串1,字符串2)
它的作用是比较字符串1和字符串2.例如:
strcmp(str1,str2);
strcmp("Chengdu","Beijing");
比较规则:
将两个字符串自左向右逐个字符比较(按照 ASCII 码值大小比较),直到出现不同的字符或者遇到 '\0 '为止。
- 如果全部字符相同,则认为两个字符串相同。
- 若出现不同的字符,则以第1对不相同的字符的比较结果为准。例如:"A"<"D","e">"E","these">"that","computer">"compare"。
- 比较结果由函数值带回。
- 字符串1=字符串2,则函数值为0
- 字符串1>字符串2,则函数值为一个正整数
- 字符串1<字符串2,则函数值为一个负整数
关于字符串处理函数,还有 strlwr
函数(转换为小写的函数)、strupr
函数(转换为大写的函数)strncpy
函数等其它函数,我们这里不再一一阐述,有兴趣的小伙伴可以查询相关内容。