5
社区成员
发帖
与我相关
我的任务
分享头文件:string.h
strcat 是 string catenate 的缩写,意思是把两个字符串拼接在一起,语法格式为:
strcat(arrayName1, arrayName2);
strcat() 将把 arrayName2 连接到 arrayName1 后面,并删除原来 arrayName1 最后的结束标志'\0'。这意味着,arrayName1 必须足够长,要能够同时容纳 arrayName1 和 arrayName2,否则会越界(超出范围)。
strcat() 的返回值为 arrayName1 的地址。
示例:
#include<stdio.h>
#include<string.h>
void displayString(int n,char *s){
for(int i=0;i<n;i++){
printf("%c",s[i]);
}
}
int main(){
char s1[]="hello,";
char s2[]="world!";
strcat(s1, s2);
displayString(strlen(s1)+strlen(s2),s1);
return 0;
}

strcpy 是 string copy 的缩写,意思是字符串复制,也即将字符串从一个地方复制到另外一个地方,语法格式为:
strcpy(arrayName1, arrayName2);
strcpy() 会把 arrayName2 中的字符串拷贝到 arrayName1 中,字符串结束标志'\0'也一同拷贝。请看下面的例子:
#include<stdio.h>
#include<string.h>
int main(){
char s1[]="hello,";
char s2[]="world!";
strcpy(s1, s2);
printf("%s",s1);
return 0;
}

strcpy() 要求 arrayName1 要有足够的长度,否则不能全部装入所拷贝的字符串。
strcmp 是 string compare 的缩写,意思是字符串比较,语法格式为:
strcmp(arrayName1, arrayName2);
arrayName1 和 arrayName2 是需要比较的两个字符串。
字符本身没有大小之分,strcmp() 以各个字符对应的 ASCII 码值进行比较。strcmp() 从两个字符串的第 0 个字符开始比较,如果它们相等,就继续比较下一个字符,直到遇见不同的字符,或者到字符串的末尾。
返回值:若 arrayName1 和 arrayName2 相同,则返回0;若 arrayName1 大于 arrayName2,则返回大于 0 的值;若 arrayName1 小于 arrayName2,则返回小于0 的值。
#include<stdio.h>
#include<string.h>
int main(){
char s1[10]="hello,";
char s2[20]="world!";
char s3[10]="hello";
char s4[20]="world!";
int com1=strcmp(s1, s2);
int com2=strcmp(s1, s3);
int com3=strcmp(s2, s4);
printf("s1<s2:%d\n",com1);
printf("s1>s3:%d\n",com2);
printf("s2=s4:%d\n",com3);
return 0;
}
