strcpy和strcat是string.h头文件中分别实现字符串数组拷贝与拼接功能的函数,详细使用相信大家都了解了,如果还不了解看看实例 C/C++笔试必须熟悉掌握的头文件系列(四)——string.h/cstring就知道怎么使用了。
  下面我们直接来看看具体实现:
 1 strcpy实现 

char* myStrcpy(char* pre, const char* next)
{if (pre == nullptr || next == nullptr) //空指针直接返回{return nullptr;}if (pre == next)                       // 两者相等也无需拷贝了return pre;while ((*pre++ = *next++) != '\0');    // 依次赋值给主字符数组return pre;
}

  上面程序实现了strcpy的程序,实现很简单依次赋值给朱字符数组即可,当遇到next指向字符串结束字符’\0’后,完成赋值并且停止赋值。这样新赋值的’\0’就成了字符数组表示的字符串结尾符,哪怕主字符串pre比next长也会戛然而止。字符串判断不管字符数组存了啥,它只认到’\0’前的数是它的主体核心部分。
 2 strcat实现  

char* myStrcat(char* pre, const char* next)
{if (pre == nullptr || next == nullptr) // 如果有一个为空指针,直接返回prereturn pre;char* tmp_ptr = pre + strlen(pre); //strlen计算字符数,需要包含都文件string.h,当然也可以自己实现while ( (*tmp_ptr++ = *next++) != '\0'); // 依次接着赋值return pre;
}

  上面程序实现了strcat拼接的功能,主要依靠新申请的一个指针先指向主字符数组的尾部,然后依次将另个字符数组字符赋值给后面的空间(可能有些人有疑惑,为什么没有申请额外空间就直接使用后面的空间,实际上这个是简版的写法,所以要求传入指针pre指向的字符数组有足够大的空间,看下面完整程序你就明白了。
 3 主程序 

#include<iostream>
#include<string>
#include<string.h>using namespace std;char* myStrcat(char* pre, const char* next)
{if (pre == nullptr || next == nullptr)return pre;char* tmp_ptr = pre + strlen(pre);while ( (*tmp_ptr++ = *next++) != '\0');return pre;
}char* myStrcpy(char* pre, const char* next)
{if (pre == nullptr || next == nullptr){return nullptr;}if (pre == next)return pre;while ((*pre++ = *next++) != '\0');return pre;
}int main()
{char str1[100] = "12345";char str2[20] = "hello world";myStrcat(str1, str2);myStrcpy(str1, str2);printf("%s\n", str1);return 0;
}

  个人学习记录,由于能力和时间有限,如果有错误望读者纠正,谢谢!

  转载请注明出处:http://blog.csdn.net/FX677588/article/details/76702319

C/C++实现strcpy和strcat两个功能相关推荐

  1. (C语言)常用的字符串函数介绍(strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen)非常详细

    理解 strcpy,strncpy,strcat,strncat,strcmp,strncmp,strchar,strlen这些函数,可以帮助我们更好的对字符串进行操作,做到玩转字符串. 目录 1.s ...

  2. C语言字符串库函数strcpy,strncpy,strcat,strncat,ctrcmp,strncmp的简介与实现

    目录 一.C语言部分字符串库函数的介绍 1.strcpy函数的介绍 2.strncpy函数的介绍 3.strcat函数的介绍 4.strncat函数的介绍 5.strcmp函数的介绍 6.strncm ...

  3. C语言库函数的实现(strlen strcpy strcmp strcat strstr)

    库函数的实现 strlen strcpy strcmp strcat strstr assert函数 头文件:assert.h 又称断言语句,可以看做是功能缩小版的 if 语句,它用于判断某个表达式的 ...

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

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

  5. 模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove

    模拟实现: strstr strcpy strlen strcat strcmp memcpy memmove ================================ 1 strstr 字符 ...

  6. C和指针之字符串之strlen、strcpy、 strcat、strcmp使用总结

    1.常见字符串相关操作 我们知道有strlen. strcpy.strcat.strcmp.这样一一系列函数 2.实现Demo #include <stdio.h> #include &l ...

  7. 淘宝面试-Strcpy与memcpy两函数的经典实现

    char *strcpy(char *des, const char *src){ assert((des != NULL) && (src != NULL)); char *add ...

  8. 比较两个字符串s1和s2的大小,如果s1s2,则输出一个正数;若s1=s2,则输出0;若s1小于s2,则输出一个负数。要求:不用strcpy函数;两个字符串用gets函数读入。

    题目描述 比较两个字符串s1和s2的大小,如果s1>s2,则输出一个正数:若s1=s2,则输出0:若s1<s2,则输出一个负数.要求:不用strcpy函数:两个字符串用gets函数读入.例 ...

  9. C语言strcat函数的作用是,实现strcat函数的功能

    编程实现strcat函数的功能 #include "stdio.h" char* strcat(char s1[],char s2[]) { int i,j; for(i=0;s1 ...

最新文章

  1. 用python编写ios应用
  2. JS 动态添加 onload、onresize、onscroll 事件
  3. python_ re模块学习
  4. 量子计算入门-第一部分
  5. dosbox 伪指令dd为什么会报错_什么是SQL函数?为什么使用SQL函数可能会带来问题?...
  6. VS2013+VSVIM
  7. 华为Mate8刷低Android版本,华为mate8怎么刷机 华为mate8刷机方法【图文教程】
  8. 懵了,Java枚举单例模式比DCL和静态单例要好???
  9. 设计素材模板|艺术感中国风海报
  10. oracle如何储存超长汉子_热水器该如何选择?!
  11. C++11线程库模板
  12. 如何访问SSH公钥?
  13. 1066 图像过滤 (15 分)—PAT (Basic Level) Practice (中文)
  14. 解读什么是ERP企业管理软件?
  15. Android布局——水滴屏全屏设置
  16. 大数据技术栈思维导图
  17. 使用密码查看器查看软件的密码
  18. 戴尔t3500服务器系统安装,Dell Precision T3500 工作站系统指南
  19. ESP8266/ESP32 +1.3“ or 0.96“ IIC OLED指针式时钟
  20. 佛蒙特州政府将启动区块链保险试点项目

热门文章

  1. XILINX FPGA时钟资源
  2. 《新编计算机科学概论》一2.5 计算机软件系统
  3. python获取游戏窗口_python中pygame针对游戏窗口的显示方法实例分析(附源码)
  4. win7 win7 我的win7
  5. 错宗复杂的进程标识PID
  6. 电子学:第011课——实验 10:晶体管开关
  7. 1.6 电源树中电流的计算方法(硬件基础系列)
  8. #python#编程求主对角线元素之和
  9. 摄影图片分享网站项目制作总结
  10. Phun-有趣的二维物理引擎