已知strcpy的函数原型:char *strcpy(char *strDest,const char *strSrc),其中strDest是目的字符串,strSrc是源字符串。不调用C++/C的字符串库函数,实现字符串复制函数strcpy。

一种方法:

char *strcpy(char *strDest,const char *strSrc)//源字符串参数用const修饰,防止修改源字符串
{if(strDest==NULL||strSrc==NULL)//空指针检查{return NULL;}char *ad=strDest;//返回目标地址while((*strDest++=*strSrc++)!='\0')//'\0'{NULL;}return ad;
}

另一种方法:

char *strcpy(char *strDest,const char *strSrc)//源字符串参数用const修饰,防止修改源字符串
{assert(strDest!==NULL&&strSrc!== NULL);//断言char *ad=strDest;//返回目标地址while((*strDest++=*strSrc++)!='\0')//'\0'{NULL;}return ad;
}

strcpy能把strSrc的内容复制到strDest,还要char *类型的返回值是为了 实现链式表达式

举例:

环境:VC++6.0

.cpp文件:

#include<iostream>
#include<stdio.h>
using namespace std;
//#include <assert.h>
char *strcpy1(char *strDest, const char *strSrc)//源字符串参数用const修饰,防止修改源字符
{//assert((strDest!=NULL)&&(strSrc!=NULL));//断言if((strDest==NULL)||(strSrc==NULL))//空指针检查  {return NULL;}char *ad=strDest;//返回目标地址 while((*strDest++=*strSrc++)!='\0')//'\0'  {NULL;}return ad;
}
int main()
{char *strSrc="Hello strcpy!";char *strDest=new char[100];cout<<"源字符串:"<<strSrc<<endl;strDest=strcpy1(strDest, strSrc);cout<<"目的字符串:"<<strDest<<endl;return 0;
}

运行结果:


注意:strcpy加1是为了防止链接时出现error LNK2005: _strcpy already defined in strcpy.obj错误信息。

此题为大学C/C++语言考试、C/C++软件开发工程师面试经常出现的题目,必须要掌握。

不调用C++/C字符串库函数,实现字符串复制函数strcpy相关推荐

  1. 字符串复制函数strcpy的实现算法

    1,字符串复制,需要考虑三种情况: 目的字符串未被赋值,本身是个空串,源字符串存在. 目的字符串长度m大于或等于源字符串长度n,此时复制时,源字符串代替目的字符串前n个字符,目的字符串后m-n个字符扔 ...

  2. C语言字符串复制函数strcpy()的编写与详解

    strcpy,即string copy(字符串复制)的缩写. 原型声明:char *strcpy(char *dest, const char *src); 头文件:#include <stri ...

  3. zcmu——-4921 字符串连接(不调用任何c的库函数实现字符串拼接)

    题目链接: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm& ...

  4. 字符串复制函数strcpy()

    两个字符串变量不可以使用"="进行直接赋值,只能通用strcpy()函数进行赋值.strcpy是 string copy的缩写,即"字符串复制".他的原型是: ...

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

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

  6. 【C】字符串库函数及重点函数的模拟实现(下)—— strstr | strtok | strerror

    本文重点 8.strstr 9.strtok 10.strerror 本文将继续介绍字符串库函数,即重点函数的模拟实现. 8.strstr

  7. 字符串的处理及转换函数

    已学习库函数 1.stdio.h--键盘,显示屏输入 2.stdlib.h--随机 3.time.h--时间 4.conio.h--getch,getche字符获取 5.limits.h--查询范围 ...

  8. 常用的字符串函数strcpy(a,b) / strlen(a) / strcat(a,b)/ strcmp(a, b)/ strupr(a) /strlwr(a)

    /1)字符串复制函数 strcpy()//strcpy 是 string copy 的缩写 strcpy(a,b)相当于a=b,将字符串b赋给a 需要头文件string.h的支持/ /* #inclu ...

  9. 常用字符串库函数总结

    本文转自https://blog.csdn.net/sharon_1987/article/details/50022855 本文与原文内容没有差别,但是由于本人比较注重颜值还有阅读体验(自认为这样可 ...

最新文章

  1. Android自定义相机详细讲解
  2. 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌 编辑:温晓桦 2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能
  3. 【Java9】异常,finally,线程创建(卖票),线程同步(卖包子),线程练习
  4. Stream流综合练习
  5. ASP.NET Core 借助 Helm 部署应用至 K8S
  6. 452. 用最少数量的箭引爆气球(贪心算法+思路+详解)07
  7. “无法解析外部符号 __security_cookie”问题解决
  8. Golang Web入门(2):如何实现一个RESTful风格的路由
  9. 【SLAM笔记】三维刚体运动
  10. 嵌入式、单片机开发必备软件
  11. like语法 mysql_mysql中like语法拼接4种方式
  12. JDK1.8下载、安装和环境配置教程
  13. 3dsmax模型导入超图
  14. Qt各版本官方下载地址
  15. SpringBoot整合J2Cache
  16. 关于修改了网页源文件但是网站显示却没变的问题解决
  17. Venmo、Bakkt、MoneyGram、Uphold的前高管加入Roxe全球支付网络
  18. 作为大数据技术面试官,我喜欢什么样的应届毕业生?
  19. android手势滑动页面,Android 手势识别 (左右滑动)实现 页面 切换
  20. 推荐一个自动破解替换密码的工具

热门文章

  1. deepin linux VScode 设置启动命令 code
  2. 杭电 ACM 2013:蟠桃记
  3. python爬虫——获取新闻标题
  4. MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法
  5. 牛客网|名字的漂亮度
  6. 小满是什么季节?这些小满海报来告诉你
  7. web前端包括哪些技术?
  8. 数据结构课程设计 班级通讯录
  9. 用 Python3 OpenCV 将视频转成字符动画
  10. html验证邮箱和手机号,js与jquery正则验证电子邮箱、手机号、邮政编码的方法