字符串连接函数strcat

C语言中的字符串函数有如下这些

  • 获取字符串长度

strlen

  • 长度不受限制的字符串函数

strcpy

strcat

strcmp

  • 长度受限制的字符串函数

strncpy

strncat

strncmp

  • 字符串查找

strstr

strtok

  • 错误信息报告

strerror

长度不受限制的字符串函数strcat

老规矩,我们还是看看文档是怎样说的,如下

strcat文档

  • char * strcat ( char * destination, const char * source );

Concatenate strings

连接字符串

Appends a copy of the source string to the destination string. The terminating null character in destination is overwritten by the first character of source, and a null-character is included at the end of the new string formed by the concatenation of both in destination.

追加一个源字符串的拷贝到目的字符串中。在目的字符串中的’\0’会被源字符串的第一个字符重写,然后’\0’会在新字符串的最后面。

destination and source shall not overlap.

目的字符串和源字符串不应该重叠

可以知道

  1. 源字符串必须以 ‘\0’ 结束。
  2. 虽然文档没说目标空间必须足够大,但是想一想还是可以知道的,即目标空间必须有足够大,能容纳下源字符串的内容,不然就追加不上了

实现

char* my_strcat(char* dest, const char* src)
{
assert(dest != NULL);
assert(src);
char* rest = dest;
// 1. 找到目的字符串的’\0′
while (*dest != ‘\0’)
{
dest++;
}
// 2. 追加,就是字符串拷贝了,和之前的strcpy的实现一样
while (*dest++ = *src++)
{
;
}
return rest;
}

int main()
{
//char arr1[] = “hello”;
//char arr2[] = “world”;

//// 把arr2追加到arr1上
//strcat(arr1, arr2);
//printf(“%s\n”, arr1);
// 会报错,空间不够,上面的写法是错误的
// 可以给arr1的大小固定一个大的空间,比如arr1[30]
char arr1[30] = “hello\0xxxxxxxxx”;
char arr2[] = “world”;

// 把arr2追加到arr1上
//strcat(arr1, arr2);
my_strcat(arr1, arr2);
printf(“%s\n”, arr1);
return 0;
}

————下载必看————

1、资源通过互联网渠道公开获取,仅供阅读测试,请在下载后24小时内删除,谢谢合作!
2、本站解压密码统一为:yudouyudou
3、本站微信客服/失效补发:rsst58
4、若版权方认为本站侵权,请联系发邮件至(rsstime@qq.com)处理。
5、关于下载,播放声音字幕,解压等问题,请点击查看>>常见问题
时光屋 » 字符串连接函数strcat

发表评论

至臻视听_发烧收藏

会员介绍 常见问题