不调用C++/C字符串库函数,实现字符串复制函数strcpy
已知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相关推荐
- 字符串复制函数strcpy的实现算法
1,字符串复制,需要考虑三种情况: 目的字符串未被赋值,本身是个空串,源字符串存在. 目的字符串长度m大于或等于源字符串长度n,此时复制时,源字符串代替目的字符串前n个字符,目的字符串后m-n个字符扔 ...
- C语言字符串复制函数strcpy()的编写与详解
strcpy,即string copy(字符串复制)的缩写. 原型声明:char *strcpy(char *dest, const char *src); 头文件:#include <stri ...
- zcmu——-4921 字符串连接(不调用任何c的库函数实现字符串拼接)
题目链接: #include<cstdio> #include<iostream> #include<cstring> #include<algorithm& ...
- 字符串复制函数strcpy()
两个字符串变量不可以使用"="进行直接赋值,只能通用strcpy()函数进行赋值.strcpy是 string copy的缩写,即"字符串复制".他的原型是: ...
- C语言字符串库函数strcpy,strncpy,strcat,strncat,ctrcmp,strncmp的简介与实现
目录 一.C语言部分字符串库函数的介绍 1.strcpy函数的介绍 2.strncpy函数的介绍 3.strcat函数的介绍 4.strncat函数的介绍 5.strcmp函数的介绍 6.strncm ...
- 【C】字符串库函数及重点函数的模拟实现(下)—— strstr | strtok | strerror
本文重点 8.strstr 9.strtok 10.strerror 本文将继续介绍字符串库函数,即重点函数的模拟实现. 8.strstr
- 字符串的处理及转换函数
已学习库函数 1.stdio.h--键盘,显示屏输入 2.stdlib.h--随机 3.time.h--时间 4.conio.h--getch,getche字符获取 5.limits.h--查询范围 ...
- 常用的字符串函数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 ...
- 常用字符串库函数总结
本文转自https://blog.csdn.net/sharon_1987/article/details/50022855 本文与原文内容没有差别,但是由于本人比较注重颜值还有阅读体验(自认为这样可 ...
最新文章
- Android自定义相机详细讲解
- 区块链研习 | 区块链里所说的“智能合约”是什么? 本文作者:敖萌	编辑:温晓桦	2017-10-11 20:31 导语:谈到区块链,必然离不开“智能合约”这个词。我们在本系列的第一篇文章中提到“智能
- 【Java9】异常,finally,线程创建(卖票),线程同步(卖包子),线程练习
- Stream流综合练习
- ASP.NET Core 借助 Helm 部署应用至 K8S
- 452. 用最少数量的箭引爆气球(贪心算法+思路+详解)07
- “无法解析外部符号 __security_cookie”问题解决
- Golang Web入门(2):如何实现一个RESTful风格的路由
- 【SLAM笔记】三维刚体运动
- 嵌入式、单片机开发必备软件
- like语法 mysql_mysql中like语法拼接4种方式
- JDK1.8下载、安装和环境配置教程
- 3dsmax模型导入超图
- Qt各版本官方下载地址
- SpringBoot整合J2Cache
- 关于修改了网页源文件但是网站显示却没变的问题解决
- Venmo、Bakkt、MoneyGram、Uphold的前高管加入Roxe全球支付网络
- 作为大数据技术面试官,我喜欢什么样的应届毕业生?
- android手势滑动页面,Android 手势识别 (左右滑动)实现 页面 切换
- 推荐一个自动破解替换密码的工具