我们先来了解一下strcat这个函数。这个库函数用于追加字符串。将源字符串追加到目标字符串之后,包括'\0‘。

所需的函数:记录目标起始位置的char*指针,记录源位置的const char*类型的指针,返回值是char*,也是便于实现链式访问。

使用时注意事项:

① 目标空间必须足够大(否则会造成越界访问)并且可修改。

②源字符串和目标字符串都是以\0结束的。

③不能自己追加自己,否则会导致死循环。

其实可以将strcat函数与strcpy函数进行类比,只不过起点发生变化。

下面来演示一下该库函数的使用

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<string.h>
int main()
{char arr1[100] = { "hello " };char arr2[] = { "world" };printf("%s\n", strcat(arr1, arr2));return 0;
}

此时屏幕上会打印“hello world”

接下来我们来对该函数进行模拟。

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<assert.h>char* my_strcat(char* dst, const char* str)
{assert(dst && str);char* start = dst;while (dst != '\0'){dst++;}//记录第一个字符串结束的位置,也即追加时要开始的地址while (*dst++ = *str++)//先赋值操作,再++,再判断{;}return dst;
}
int main()
{char arr1[100] = { "hello " };char arr2[] = { "world" };printf("%s\n",my_strcat(arr1, arr2));return 0;
}

模拟实现strcat相关推荐

  1. 【笔试题】C语言:模拟实现strcat

    strcat()函数不限制,而strncat()是有限制的,后者我的博客也有,有兴趣可以查看. 设置有限制的strncat(),因为:像我的博客,C语言:判断一个字符串是否为另外一个字符串旋转之后的字 ...

  2. C语言模拟实现strcat,strncat函数

    追加函数strcat char *strcat(char *strDestination, const char *strSource); 实现思路:在目标函数中找到元素为0的位置,将source字符 ...

  3. 用c语言编程实现strcpy,用c语言.模拟实现strcpy,strcat,strcat,memcpy,memmove

    1.模拟实现strcpy #include #include #include #include char *my_strcpy(char *dst, const char *src) { asser ...

  4. strcat函数及其模拟

    strcat是字符串追加函数 1.strcat函数的参数以及返回值 1.1参数: 函数的参数分别是目的(destination)字符串的地址,以及被拼接(source)的字符串的地址. 此外,由于我们 ...

  5. 学习模拟实现strlen strcmp strcpy strcat strstr等库函数

    文章目录 前言 strlen 使用方法与注意事项 模拟实现 strcmp 使用方法与注意事项 模拟实现 strcpy 使用方法与注意事项 模拟实现 strcat 使用方法与注意事项 模拟实现 strs ...

  6. 【C语言】字符串库函数的解读和模拟实现第一弹(strlen、strcpy、strcat、strcmp、strncpy、strncat 及 strncmp)

    目录 一. strlen函数 1.1 strlen函数实现的功能及函数原型 1.1.1 strlen函数实现的功能 1.1.2 strlen的函数原型 1.1.3 strlen实现功能的更进一步解读 ...

  7. 字符函数、字符串函数、内存函数用法及其模拟实现

    目录 1.strlen strlen的模拟实现 2.strcpy strcpy模拟实现 3.strcat - 字符串追加 模拟实现strcat 4.strcmp - 比较字符串 模拟实现stcmp 5 ...

  8. c语言strcpy、strcmp、strcat等常见字符操作函数的介绍

    字符串是c语言中一种常见的数据类型,字符串属于常量,不可修改,如果我们想要修改,就要把它放在字符数组中来对其进行修改,而有一些函数可以帮助我们完成一些常用的操作字符串的动作,下面我们就来介绍一些常用字 ...

  9. C语言string库函数介绍(附模拟实现)

    目录 strlen 模拟实现 strcpy 模拟实现 strcat 模拟实现 strcmp 模拟实现 strncpy strncat strncmp strstr 模拟实现 strlen size_t ...

最新文章

  1. 听说今天你要答辩了?哈哈哈哈哈哈哈哈哈
  2. netcore权限控制_记录这两年是如何一步一步转型到.net core+k8s
  3. Python进阶11-标准库介绍02
  4. java 查询功能_java利用反射实现查询功能
  5. 项目范围管理:WBS
  6. oracle外部表导入,oracle 外部表导入时间日期类型数据
  7. python3 音乐播放器_python3 音乐播放器
  8. lesson7 集合set
  9. 经过这几年的磨练_通过构建这15个项目来磨练您JavaScript技能
  10. 分析rss/xml结构附带源码【原创】
  11. fastapi 基础使用
  12. 用sc命令查询系统状态
  13. SQL:postgresql修改某字段的部分内容
  14. Android studio 真机调试出现sdk版本不匹配问题
  15. 两个平面的位置关系和判定方程组解_必修二数学课后题答案
  16. 俞敏洪老师谈英语单词记忆方法
  17. 实习日记5:过滤器+批量删除+角色管理
  18. Android studio 常见问题(2)----存储空间不足导致AVD打不开的错误
  19. 计算机动态储存,动态存储器
  20. 【JAVA程序设计】(C00063)基于Springboot+Thymeleaf学校自动排课管理系统

热门文章

  1. CentOS7 yum update 更新失败
  2. hdu1852 Beijing 2008(约数之和 : 无逆元除法取模 | 等比数列分治求和)
  3. 【高性能】Extreme交换机从头到尾配置
  4. 雅安职业技术学院工业机器人专业_雅安职业技术学院排名前三的专业有哪些
  5. 用eclipse和Tomcat写一个简易聊天室
  6. 关于shell脚本中‘’,“”,``的各自用途
  7. 前端--最具文艺范的程序员
  8. app开发完成后,不能上架苹果商店(App Store)怎么办呢?
  9. 新旧势力短兵相接:有焦虑但不恐慌 | SAECCE2018
  10. MBA考研英语很重要青岛太奇亲情解读