写点什么

strcat() - 连接字符串

作者:謓泽
  • 2022 年 7 月 20 日
  • 本文字数:1184 字

    阅读完需:约 4 分钟

strcat() - 连接字符串

🚩write in front🚩

🔎大家好,我是謓泽,希望你看完后。能对你有所帮助,不足请指正,共同学习交流🔎

🆔本文由 謓泽 原创 如需转载还请通知⚠

📝个人主页-InfoQ - 促进软件开发及相关领域知识与创新的传播-极客邦💬

🎁欢迎各位→点赞👍 + 收藏⭐️ + 留言📝​

✉️我们并非登上我们所选择的舞台,演出并非我们所选择的剧本📩

📢2021 年度博客之星物联网与嵌入式开发 TOP5~2021 博客之星 Top100~阿里云专家 ^ 星级博主~掘金⇿InfoQ 创作者~周榜 99»总榜 1184👋

🎄strcat() - 连接字符串🎄

strcat() 函数的声明方式如下 👇


char *strcat(char *dest, const char *src)
复制代码


将源字符串的副本追加到目标字符串。

dest → 指向目标数组,该数组包含了一个 C 字符串,且足够容纳追加后的字符串。

src → 指向要追加的字符串,该字符串不会覆盖目标字符串。

该函数返回一个指向最终的目标字符串 dest 的指针。

把 src 所指向的字符串追加到 dest 所指向的字符串的结尾。

不能自己给自己追加程序,像这样:


char arr[20] = "Cyuyan"strcat(arr,arr);printf("%s\n",arr);
复制代码


这样子是不行的,本来我的这个数组存放的是:Cyuyan\0,因为这块空间足够长后面还是有内容的。那么如果我们要进行追加的话就会是这个样子:CyuyanCyuyan,本质上我们的斜杠 0 会在 CyuyanCyuyan 这个字符串 n 的后面。但是斜杠 0 被覆盖了,那么被谁覆盖的呢,就是被自己所追加的 arr 所覆盖了。这样就会构成循环,因为我们永远都找不到反斜杠 0-O-

🎄strcat()函数代码示例🎄

使用 strcat() 函数代码示例如下 👇


#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<string.h>int main(void){  char arr1[20] = "hello C";  char arr2[20] = "yuyan";  strcat(arr1, arr2);  printf("arr1 = %s\n", arr1);  return 0;}
复制代码


运行结果如下 👇

arr1 = hello Cyuyan

让我们来看看它的调试结果的步骤🧐


🎄创建自定义函数实现 strcat()的功能🎄

思路很简单其实 👇

Ⅰ→dest 找到目标字符串'\0'

Ⅱ→再把源数据追加到字符串'\0'的后面,注意:是包含'\0'的

示例代码如下:👇


#define _CRT_SECURE_NO_WARNINGS 1#include<stdio.h>#include<assert.h>char *My_strcat(char *dest, const char *src){  assert(dest && src != NULL);//断言  char *ret = dest;  while (*dest != '\0')//'\0'的ASCLL码值就是0  {    dest++;  }    //dest指向的是'\0'  while (*dest++ = *src++)  {    ;  }    /*相当于  while (*src != '\0')  {    *dest++ = *src++;  }*/  return ret;}int main(void){  char arr1[20] = "hello C";   char arr2[20] = "yuyan";  printf("%s\n", My_strcat(arr1, arr2));  return 0;}
复制代码


运行结果如下 👇

hello Cyuyan



🍊⒈注→在上述的代码细节还是非常多的非常值得调试以下观察它的运行步骤。如

🍎⒉注→'\0'实际上也是对应着 C 语言的空字符 NULL 十进制为 0 的值。


发布于: 刚刚阅读数: 3
用户头像

謓泽

关注

一起happy! 2022.01.29 加入

谁也不知道旅途的终点是怎么样的,现在只不过是开始。便全力以赴!终点必将是星辰大海。 2021年度博客之星物联网与嵌入式开发TOP5 2021博客之星Top100 阿里云专家博主^星级博主 CSDN⇿掘金⇿InfoQ[创作者]

评论

发布
暂无评论
strcat() - 连接字符串_7月月更_謓泽_InfoQ写作社区