strcpy
即string copy
语法格式为strcpy(str1, str2), 作用是将str2赋值给str1
使用方法类似于
char str1[10], str2[] = "abc";
strcpy(str1, "bcd");
strcpy(str1, str2);
printf("%s", str1); // abc
str2可以是字符串, 也可以是字符串首地址(指针)。
strcpy会从传入的地址开始写入, 如代码为strcpy(str1+1, str2),程序会从str1第二个元素开始写入str2的值
值得注意的是, strcpy将指定内容添加到字符串中后, 会在末尾添加一个空字节‘\0’, 以表示字符串结束。
如
char str[5] = "abcde";

strcpy(str, "xyz");

因此,使用strcpy将某字符串的内容赋予长度为n的字符串时, 被复制的字符串长度最大为n-1(留一个位置给’\0’),否则会有溢出的报错类似:builtin_memcpy’ writing 11 bytes into a region of size 10 overflows the destination 。
strcat
strcat(str1, str2)
将str2拼接到str1的末尾
char str[10] = "abc";
strcat(str ,"cde");
printf("%s", str); // abccde
使用strcat(str1, str2)时, 程序会从str1第一个空字节开始将str2的内容写入, 并在末尾重写空字节。
所以, str1中必须有足够的空间来放入str2,即str1原先内容后面至少要有strlen(str2)+1个字节。
strcmp
即string compare
用于比较两个字符串。
规则是从两个字符串第一个字符开始比较(ascii), 若相同则比较下一个字符,直到不同为止;若str1对应位置的字符的ascii值小于str2的, 返回一个负整数(一般为-1, 取决于系统, 有的会返回ascii码的差值),反之返回一个正整数(1);若两个字符串的长度和每个字符都相同, 则返回0。
参考:
strcat
strcmp


















