C语言string库strcpy、strcmp、strcat函数详解

您所在的位置:网站首页 c语言的strcat函数 C语言string库strcpy、strcmp、strcat函数详解

C语言string库strcpy、strcmp、strcat函数详解

2024-05-24 15:56| 来源: 网络整理| 查看: 265

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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3