先来看下strcat的函数原型char * strcat(char* str1,const char* str2),实现的功能是将str2字符串接续写在str1后,比如a[]="1234",b[]="abcd",调用strcat(a,b)则可以得到1234abcd。

函数实现并检测过程如下:

#include <stdio.h>

char * mystrcat(char* str1,const char* str2){

if((NULL == str1)||(NULL == str2)){

return NULL;

}

char* ret=str1;

int i=0;

while(*ret!='\0'){

*ret++;

}

while ((*ret++ = *str2++) != '\0');

return str1;

}

int main(){

char* c=NULL;//为了防止野指针的出现,直接初始化为NULL

char a[]="tuya ";

char b[]="hello world";

c=mystrcat(a,b);

printf("c = %s\n",c);

}

首先检测参数有效性,将str1进行备份char* ret=str1,由于str2是输入型参数,且我们在定义时就采用了const进行修饰,所以不用备份,接下来进行第一次循环,作用是让ret指针来到str1的'\0'处,然后通过第二次的while循环将str2的1内容接续到str1后,达到我们的目的,最后再返回str1,注意返回的一定是str1,而不是ret。

如有错误,请各位看官老爷们多多指出

strcat函数实现过程相关推荐

  1. c语言连接多个字符串,c语言连接多个字符串(strcat函数实现)

    想要用c语言实现字符串的连接,尤其是多个字符串的连接,由于不能直接用"+"相连,其实还是比较麻烦的.本人初学,接触到的字符串连接方法主要有两种:1)用sprintf()函数:2)多 ...

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

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

  3. 字符串函数:strlen函数,strcpy函数,strcat函数,strcmp函数

    目录: 1.字符串函数strlen (1)strlen函数 (2)strlen的使用 a.代码 b.运行结果 (3)模拟实现strlen函数 a.代码 b.运行结果 (4)注意: 2.字符串函数str ...

  4. strcat函数解析

    一.认识strcat strcat函数又被称为是字符串追加/连接函数,它的功能就是在一个字符串后面追加上另外一个字符串. 使用方式如下: #include<string.h> #inclu ...

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

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

  6. c语言数据库的连接字符串函数,C语言strcat()函数:连接字符串

    头文件:#include strcat() 函数用来连接字符串,其原型为: char *strcat(char *dest, const char *src); [参数]dest 为目的字符串指针,s ...

  7. C语言标准库之strcat函数

    2018-10-20 C库函数strcat()函数的功能是实现字符串的拼接.其函数原型如下所示 char *strcat(char *dest, const char *src) 1.参数说明 des ...

  8. PL/SQL -- 动态SQL调用包中函数或过程

    动态SQL主要是用于针对不同的条件或查询任务来生成不同的SQL语句.最常用的方法是直接使用EXECUTE IMMEDIATE来执行动态SQL语句字符串或字符串变量.但是对于系统自定义的包或用户自定的包 ...

  9. strcat()函数常见问题

    strcat(char *_Destination,const char *_Source)函数的功能是将后一个字符串粘贴到前一个字符串的末尾 原型 char *strcat(char *_Desti ...

最新文章

  1. CYQ学习主要摘要4
  2. android mvvm流程图,MVVM框架模式详解
  3. 使用管道符组合使用命令_如何使用管道的魔力
  4. 【计算机网络】简单网络管理协议 SNMP
  5. Java 这么卷,要转 Go 吗?
  6. java中element转换_java中实体类与xml的element相互转换
  7. CGAL 计算几何库
  8. PGSQL查询今天生日的员工
  9. led大屏按实际尺寸设计画面_微间距LED大屏幕拼接显示系统设计方案
  10. HTTP:SSL证书简介!
  11. Vue动态渲染echarts图表
  12. 安装包的原理与制作安装包的流程
  13. swift 代码加载xib storyboard
  14. 概率函数和概率密度函数
  15. Day13-Java方法详解,方法的定义、重载,命令行传参,可变参数与递归
  16. Motrix Mac版baidu网盘下载器使用方法!!
  17. Imagine Cup 2013
  18. 《利用Python进行数据分析》第一个案例
  19. python-8 数据结构
  20. QTableWidget设置表头筛选(含鼠标点击事件过滤)

热门文章

  1. CV——day72:从零开始学YOLO——YOLO-v3(可以在我的资源里下载完整的v1到v3的笔记啦!)
  2. Winform UI框架 | Winform界面快速开发框架
  3. 提高企业云服务性价比,亚马逊云科技为用户提供全面和深入的算力支持
  4. 【翻译+整理系列一】ADF概述
  5. Flink 在顺丰的应用实践
  6. 开发使用air还是pro_新款iPad Air首发评测:比“Pro”更轻量的无负担体验
  7. 圣诞节快到了,用Python给好友做一个圣诞树小程序吧【保姆式教程】
  8. STM32开发笔记25:STM32L0低功耗设计—— 使用Keil和ST-Link下载低功耗程序
  9. 服务是一种产品,是一种符号,更是一种责任和爱
  10. 微信小程序-云开发下的用户注册及用户登录逻辑