实现strcpy函数

假如有一个字符指针dest指向一个字符串 “abcdef”,另一个字符指针src指向另一个字符串“123”,现在需要把“123”拷贝到“abcdef”里。1替换a,2替换b,c替换d,最后’\0’替换d。我们可以写出以下代码。

char* my_strcpy(char* dest, const char* src)
{assert(dest != NULL);assert(src != NULL);char* res = dest;while (*src != '\0'){*res++ = *src++;}return res;
}

但是,以上代码只能替换到’\0’之前。无法把’\0’也替换过去。当while循环结束,*src==’\0’的时候,此时src指向’\0’,dest也指向和src对应的字符空间。此时再替换一次。此时代码基本已经实现了strcpy函数的功能。

char* my_strcpy(char* dest, const char* src)
{assert(dest != NULL);assert(src != NULL);char* res = dest;while (*src != '\0'){*res++ = *src++;}*res= *src;return res;
}

现在对代码稍作调整,我们可以把赋值和自增写成一个表达式当做while循环的条件。当src不断++,src指向’\0’的时候,*dest此时等于’\0’。while循环停止,完成拷贝。这样一个比较完整的strcpy就写好啦。

char* my_strcpy(char* dest, const char* src)
{assert(dest != NULL);assert(src != NULL);char* res = dest;//拷贝src所指向空间的元素到res指向的空间里,包含'\0'。while (*res++ = *src++){}//返回目的地初始空间。return res;
}

实现strcpy函数相关推荐

  1. 常见面试题:重写strcpy() 函数原型

    已知strcpy函数的原型是 char* strcpy(char* strDest,const char* strSrc); 1.不调用库函数,实现strcpy函数 2.解释为什么要返回char*; ...

  2. strcmp函数和strcpy函数

    (一)strcmp函数 strcmp函数是比較两个字符串的大小,返回比較的结果.一般形式是: i=strcmp(字符串,字符串); 当中,字符串1.字符串2均可为字符串常量或变量:i   是用于存放比 ...

  3. 第九十六题(编写strcpy 函数)

    96.08 年中兴校园招聘笔试题 1.编写strcpy 函数 已知strcpy 函数的原型是 char *strcpy(char *strDest, const char *strSrc); 当中st ...

  4. 指针的运用与strcpy函数的优化

    /*strcpy函数:将指针t指向的字符串复制到指针s指向的位置*/ 版本1: void strcpy(char *s,char *t) {     int i;         i = 0;     ...

  5. C中strcpy函数实现

    strcpy函数实现 strcpy函数的原型为:char* strcpy(char* _Dest, const char* _Source); //实现1 char * strcpy(char* _D ...

  6. strcpy函数实现的几种方式

    C/C++--strcpy函数的实现 和解析 题目:      已知strcpy函数的原型是:          char * strcpy(char * strDest,const char * s ...

  7. strlen函数,strcat函数,strcpy函数,strncpy函数,strcmp函数

    strcpy函数: char *strcpy(char *Dest , const char *Src) { assert((Dest != NULL) && (Src != NULL ...

  8. 【C/C++ string】之strcpy函数

    题目:     已知strcpy函数的原型是:         char * strcpy(char * strDest,const char * strSrc);     1.不调用库函数,实现st ...

  9. c++语言函数strcpy,C++中函数的安全版本的意义及strcpy函数的功能和差别(图)

    C++中函数的安全版本的意义及strcpy函数的功能和差别(图) 我们在进行C/C++编程时,会发现中有些函数在VS中使用时,提示使用_s的函数版本,其实这种_s的函数版本是安全版本,它们完成的任务与 ...

  10. strcpy函数的实现

    大家一般觉得名不见经传strcpy函数实现不是非常难,流行的strcpy函数写法是: char *my_strcpy(char *dst,const char *src) {assert(dst != ...

最新文章

  1. getGeneratedKeys自动获取主键的方法
  2. 【数字信号处理】离散时间信号 ( 模拟信号、离散时间信号、数字信号 | 采样导致时间离散 | 量化导致幅度离散 )
  3. python中的多进程与多线程(二)
  4. Java基础面试16问
  5. 使用代码删除IBASE object component
  6. android lint工作机制,Android架构
  7. MySQL 之 存储过程
  8. spring + hibernate + mysql 事务不回滚
  9. 小程序日历插件的使用
  10. RecycleView嵌套滑动机制
  11. Linux共享内存(二) (转载)
  12. python数据结构与算法知识点_数据结构和算法基础知识点(示例代码)
  13. 20、C++ Primer 4th 笔记,重载运算符(1)
  14. 李阳疯狂英语900句 121-330
  15. 算法7-9:有向图搜索算法
  16. 医院的智能物流系统如何搭建?
  17. Win10 默认输入变全角问题解决方法
  18. 六年Android生涯总结+展望:君子坐而论道,少年起而行之
  19. Day14.网络编程入门及其应用
  20. 两种将pdf转换成jpg格式的简单方法

热门文章

  1. 苹果手机登录王者荣耀服务器未响应,王者荣耀登陆游戏服务器未响应怎么回事 王者荣耀无法登陆原因介绍...
  2. 大容量存储方案_精细化存储分层,西部数据赋能多场景解决方案
  3. 交易猫源码搭建+完整版源码
  4. php用户管理拿shell,PHPWEB网站管理系统后台拿shell
  5. AutoCAD利用SCRIPT脚本生成齿轮
  6. 计算机设备管理器老是闪烁,电脑显示器经常闪烁怎么回事
  7. 阿里云优惠券最新最全领取和使用方法
  8. 微信公众号css实现滑动效果,基于HTML/CSS/JS微信公众号展示页面模板
  9. 计算机应用房地产,房地产管理中的计算机应用.pdf
  10. Servlet/JSP随笔录