Strcat函数原型如下:char *strcat(char *strDest, const char *strScr) //将源字符串加const,表明其为输入参数
{char * address = strDest;             //该语句若放在assert之后,编译出错assert((strDest != NULL) && (strScr != NULL)); //对源地址和目的地址加非0断言while(*strDest)             //是while(*strDest!=’/0’)的简化形式{                        //若使用while(*strDest++),则会出错,因为++是不受循环strDest++;               //约束的。所以要在循环体内++;因为要是*strDest最后指}                        //向该字符串的结束标志’/0’。while(*strDest++ = *strScr++) //是while((*strDest++ = *strScr++)!=’/0’)的简化形式{NULL;                 //该循环条件内可以用++,}                          //此处可以加语句*strDest=’/0’;有无必要?
return address;               //为了实现链式操作,将目的地址返回
}以下是在VC6.0中调试的例子,函数名用my_strcat代替#include <stdio.h>
#include <assert.h>char *my_strcata(char *strDest,const char *strScr)  //char * my_...为了将这个函数的返回值作为其他函数的参数,即链式访问
{char * address = strDest;//把strDest先保存起来,因为而底下的的strDest一直在++assert((strDest != NULL) && (strScr != NULL));while(*strDest){strDest++;}while(*strDest++ = *strScr++){NULL;}return address;
}void main()
{char str1[100]={"i love"};char str2[50]={"China"};printf("%s/n",my_strcata(str1,str2));
}

实际中,会存在一个小问题:

while(*dst++);

这样写的话,在dst指向\0时又往后++了一位,相当于说多了一个\0在中间,那么输出时肯定遇到\0结束,那么改进为:

while(*dst)dst++;

这样的话就不会造成上面的情况,当指针指向\0时直接跳出while循环

转载于:https://blog.51cto.com/survive/1711347

【C语言】实现strcat相关推荐

  1. C语言之strcat和strncat

    C语言之strcat和strncat strcat为连接函数,其作用是把2个字符串连接为一个,strncat函数可以指定其后连接的字符串的个数. 代码示例:(strcat函数) /* strcat 和 ...

  2. C语言之strcat函数

    [FROM MSDN && 百科] 原型:char *strcat(char *dest,const char *src); #include<string.h> Appe ...

  3. c语言实现strcat函数

    char *strcat( char *strDestination, const char *strSource ); 一.函数介绍 作用:连接字符串的函数,函数返回指针,两个参数都是指针,第一个参 ...

  4. 【C语言】strcat、strncat详解并模拟实现

    1.库函数strcat:  函数声明:char* strcat(char* strdestination, const char* strsource); 提示:源字符串在函数实现过程中不修改其内容, ...

  5. c语言strcat函数代码,C语言之strcat函数

    [FROM MSDN && 百科] 原型:char *strcat(char *dest,const char *src); #include Append a string. 把sr ...

  6. C语言实现strcat

    1.strcat介绍 strcat --- 字符串追加 char * strcat ( char* destination, const char* source ); 源头字符串与目的地字符串必须都 ...

  7. 【C语言】strcat函数_字符串追加/连接

    前言:在C/C++的学习过程当中一定一定要多刷题,牛客网作为国内内容超级丰富的IT题库,尤其是它的C.C++,有从入门到大厂真题,而且大部分的考试题目也是从中抽取,还有很多面经,推荐大家去牛客网进行刷 ...

  8. 杭州c语言开发招聘,杭州招银网络科技

    为了帮助职业圈网友能够及时了解杭州招银网络科技的面试流程以及面试过程所涉及的面试问题,职业圈小编把刚获得的杭州招银网络科技面试经验马上编辑好,快速提供给大家,以便能够尽快帮助到有需要的人.这次面试总共 ...

  9. 大学c语言程序上机考试试题,C语言上机试题100套

    目包含3道题:一道程序填空题.一道程序修改题.一道程序设计题),真实考试的时候,考生输入准考证后计算机随机为你抽取一套考试,每个考生考试时只需考一套题目(包含三道题),但由于考试时是随机抽题,所以即使 ...

  10. strcat函数oracle,实现strcat函数

    关于C语言字符串函数使用的一点心得 就字符串的拼接函数为例strcat. 原型:extern char *strcat(char *dest,char *src);用法:#include <st ...

最新文章

  1. 【Android 安全】使用 360 加固宝加固应用 ( 购买高级加固服务 | 设置资源加固 | 设置 SO 文件保护配置 | 设置 SO 防盗用文件配置 | 反编译验证加固效果 )
  2. Linq to sql和lambda
  3. Android 插件化原理解析——Service的插件化
  4. 【算法基础】常用的数据结构与算法
  5. asp按时间自动递增编号_Java秒杀系统实战系列-分布式唯一ID生成订单编号
  6. php静态变量的销毁
  7. php 向ldap请求文件,绑定 LDAP 目录 - PHP 7 中文文档
  8. gulp安装流程、使用方法及cmd常用命令导览
  9. java数据结构与算法pdf下载
  10. Spring boot mqtt客户端
  11. 用VC进行64位编程
  12. 小白怎么入门网络安全?
  13. 利用perl一键生成符合LEFse差异分析的Table表
  14. 排错Package restore is disabled by default. To give consent, open the Visual Studio Options dialog
  15. CF1132D Stressful Training Solution
  16. 天创速盈:拼多多推广效果不好,哪里需要改善?
  17. 468、Java框架122 -【Spring + SpringMVC + MyBatis - JSON】 2021.01.27
  18. 自定义右键的打开方式
  19. 好看的桑基图是如何炼成的!
  20. Windows 通过CMD指令导出的文件夹/文件的目录树

热门文章

  1. 数据系列:如何在Windows Azure虚拟机上设置SQL Server
  2. ros 消息队列与缓冲区_Spring Boot消息队列系统:RocketMQ初入门
  3. 30+的程序猿,路在何方?
  4. Python设计模式面向对象编程
  5. vue论坛网站的文章自动排版_基于 VuePress 定制个人博客网站
  6. html页面调用ico图标,如何在HTML中使用图标字体 - icon font?
  7. java运行在用户态_理解Linux用户态和内核态
  8. poj2728(最优比率生成树)
  9. Food HDU - 4292 网络流
  10. CF888G Xor-MST (01字典树+MST)