一般形式:strcat(字符数组1,字符数组2) 作用:连接两个字符数组中的字符串,把字符串2接到字符串1的后面,结果放在字符数组1中,函数调用后得到一个函数值——字符数组1的地址。
例如:
char str1[30]={″Hello ″}; char str2[]={″Word″}; printf(″%s″,strcat(str1,str2)); 输出: Hello Word
2. strcmp函数一般形式:strcmp(字符串1,字符串2) 作用:比较字符串1和字符串2。
例如:
strcmp(str1,str2); strcmp(″China″,″Korea″); strcmp(str1,″Beijing″);
(1)比较的结果由函数值带回
a,若字符串1=字符串2,函数值为0。 b,若字符串1>字符串2,函数值为正。 c,若字符串1str2) printf(″yes″); b,正确形式:if(strcmp(str1,str2)>0) printf(″yes");
(3) 字符串是数组类型而非简单类型,不能用关系运算进行大小比较。
if("ABC">"DEF") /*错误的字符串比较*/
if(strcmp("ABC","DEF") /*正确的字符串比较*/
3. strcpy函数
(“字符串复制函数”) 一般形式:strcpy(字符数组1,字符串2) 作用:将字符串2复制到字符数组1中去。
例如: char str1[10],str2[]={″csdn″}; strcpy(str1,"csdn");
(1)字符数组1必须定义得足够大,以便容纳被复制的字符串。字符数组1的长度不应小于字符串2的长度。 (2)“字符数组1”必须写成数组名形式(如str1),“字符串2”可以是字符数组名,也可以是一个字符串常量。
其中,字符串1必须是字符串变量,而不能是字符串常量。strcpy函数把字符串2的内容完全复制到字符串1中,而不管字符串1 中, 原先存放的是什么。复制后,字符串2保持不变。
例如: strcpy(str1,″China″);
(3)复制时连同字符串后面的′\0′一起复制到字符数组1中。 (4)可以用strncpy函数将字符串2中前面若干个字符复制到字符数组1中去。
例如:strncpy(str1,str2,2);
作用:将str2中前面2个字符复制到str1中去,然后再加一个‘\0’
(5)不能用赋值语句将一个字符串常量或字符数组直接给一个字符数组。
例如: str1=″China″; 不合法 str1=str2; 不合法
(6)用strcpy函数只能将一个字符串复制到另一个字符数组中去。 用赋值语句只能将一个字符赋给一个字符型变量或字符数组元素。 例如:(合法的使用)
char a[5],c1,c2; c1=′A′; c2=′B′; a[0]=′C′; a[1]=′h′; a[2]=′i′; a[3]=′n′; a[4]=′a′;
(7)由于字符串是数组类型,所以两个字符串复制不通过赋值运算进行。
例如:
t=s; /*错误的字符串复制*/
strcpy(t,s); /*正确的字符串复制*/