Strcat函数和Strncat函数详解

Strcat函数原型

char *strcat( char *strDestination, const char *strSource );

strcat函数的注意事项

  • 源字符串必须以\0结束
  • 目标空间必须足够大,能容纳下源字符串的内容
  • 目标空间必须可修改

模拟实现strcat

#include<stdio.h>
#include<assert.h>
char* my_strcat(char* dest, const char* source)
{//字符串的连接首先要找到目标字符串的\0,然后在去追加,一共分为两步char* ret = dest;assert(dest != NULL);assert(source != NULL);while (*dest != '\0'){dest++;}while (*dest++ = *source++){;}return ret;
}
int main()
{char arr1[20] = "hello ";my_strcat(arr1, "world");printf("%s", arr1);return 0;
}

思考:字符串可以连接字符串本身吗?

答案是不可以的;
因为:字符串自己连接自己是不可行的,自己连接自己的话就会覆盖掉\0,这样程序就找不到终止的标志,会一直继续,达成死循环,最终程序崩溃

strncat的函数原型

char *strncat( char *strDest, const char *strSource, size_t count );

库函数下的strncat

#include<stdio.h>
int main()
{char arr1[30] = "hello world";char arr2[] = "change world";strncat(arr1, arr2, 3);printf("%s", arr1);return 0;
}
//追加的时候要主动放一个\0过去
//如果希望追加的字符个数大于我字符串本身的个数的话,不会再像后面追加0.只会链接我字符串本身的长度,然后放一个\0,别的什么操作都没有

模拟实现strncat

#include<stdio.h>
#include<assert.h>
char* my_strncat(char* dest, const char* src,int n)
{char* ret = dest;assert(dest);assert(src);char* p = dest;while(*p != 0){p++;}while(n--){*p++ = *src++;}*p = 0;  //主动追加一个\0就字符串连接了。return ret;
}
int main()
{char arr1[30] = "hello world";char arr2[] = "change world";my_strncat(arr1, arr2, 3);printf("%s", arr1);return 0;
}

Strcat函数和Strncat函数相关推荐

  1. c语言中strncat函数的用法,strcat函数与strncat函数的深入分析

    函数原型:extern char *strcat(char *dest,char *src)参数说明:dest为一个目的字符串的指针,即被连接的字符串(在前),src为一个源字符串的指针(在后). 所 ...

  2. strcat函数与strncat函数——追加字符串

    头文件: string.h 函数的声明: char *strcat( char *dest, const char *source ) 目标字符串           原始字符串 char *strn ...

  3. strncat 函数、strncmp 函数、strncpy 函数的使用与模拟

    1. strncat 函数. strncat 函数的介绍: strncat 函数char *strncat( char *strDest, const char *strSource, size_t ...

  4. C语言:字符函数与字符串函数(一)

    目录 一.求字符串长度 1.1strlen 1.2注意: 二.长度不受限制的字符串函数 2.1strcpy 2.2strcat 2.3strcmp 三.长度受限制的字符串函数 3.1strncpy 3 ...

  5. C语言的库函数、自定义函数、嵌套函数,以及递归函数

    函数是C语言和C++很重要的部分,从它们本身有的系统的库函数,到我们自定义类型的函数.我们需要了解进一步地了解它们,掌握它们,使用它们. 目录 库函数 常见的库函数 自定义函数 1.自定义取最大值得函 ...

  6. 十一.字符串函数与内存函数

    目录 一.求字符串长度 二.长度不受限制的字符串函数 1.strcpy函数 2.strcat函数 3.strcmp函数 三.长度受限制的字符串函数 1.strncpy函数 2.strncat函数 3. ...

  7. strncat函数详解看这一篇就够了-C语言(函数实现、使用用法举例、作用、与strcat的区别)

    首先要明确strncat的功能是:从字符串src的开头拷贝n个字符到dest字符串尾部 目录 函数介绍: 与strcat的区别 函数实现: 用法示例: 结果展示: 函数介绍: 函数原型:char* s ...

  8. C语言strcat函数和strncat的区别

    函数名: strcat 功 能: 字符串拼接函数 用 法: char *strcat(char *destin, char *source); 文章目录 strcat函数的使用 strcat函数能否能 ...

  9. C语言strcat、strncat函数详解

    C语言strcat.strncat函数详解 一.strcat函数 1.函数原型 2.函数参数.返回值解析 3.函数作用 4.注意事项 5.strcat函数模拟实现 二.strncat函数 1.函数原型 ...

最新文章

  1. Canvas绘制图形图像
  2. stm32 led屏控制卡_室内LED显示屏如何安装?
  3. TeliaSonera计划2018年推出5G服务
  4. 怎样实现banner自动播放html,纯CSS3实现banner图片自动轮播效果方式总结
  5. System V IPC之信号灯
  6. Linux / Unix Command: getprotobyname
  7. 【重温基础】6.数字
  8. 数据结构与算法python—10.二叉树题目leetcode总结
  9. 7-11 机工士姆斯塔迪奥(PTA程序设计)
  10. Java程序员面试笔试宝典-数据库原理(三)
  11. Android imageview 圆形头像
  12. Excel 使用技巧集锦
  13. 转:成功者的第四个特征,如何与他人打交道?
  14. JS 正则表达式(正则匹配RegExp)
  15. php 元旦祝福,简短祝福语八个字 元旦祝福语简短
  16. word 中字号与数字(磅pt)对应关系
  17. 华为平板可不可以更新鸿蒙,恭喜了,这37款华为支持升级鸿蒙,你的可以吗?...
  18. 网易互娱笔试2021批题解
  19. ubuntu20.04系统的英文语言换成中文语言
  20. 简述3032路pcm帧的结构_PCM30/32路系统帧结构

热门文章

  1. HTML img标签align属性
  2. MQL5画多种颜色空心K线的方法
  3. 计算机仿真还给稿费,国内期刊不需要审稿费和版面费汇总
  4. 2021最强Python学习教程,从零基础入门到精通
  5. JSP旅游网站设计与实现
  6. Github Pages搭建个人博客(2018年10月版)
  7. 看别人空间显示服务器错误,为什么我打开别人QQ空间有时会出现“内部服务器错误”这样?大神们帮帮忙...
  8. slab/slob/slub的区别
  9. oracle中字符串连接符||
  10. 易观梁新刚——高级规划与排程