欢迎来到山村网

C语言中字符串常用函数strcat与strcpy的用法介绍

2019-03-02 10:07:30浏览:518 来源:山村网   
核心摘要:以下是对C语言中字符串常用函数strcat与strcpy的使用方法进行了详细的分析介绍,需要的朋友可以参考下strcpy原型声明:extern ch
以下是对C语言中字符串常用函数strcat与strcpy的使用方法进行了详细的分析介绍,需要的朋友可以参考下

strcpy原型声明:extern char *strcpy(char* dest, const char *src);
头文件:#
include <string.h>
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
函数实现:

复制代码 代码如下:


char *strcpy(char *strDestination,const char *strSource)
{
assert(strDestination!=NULL && strSource!=NULL);
char *strD=strDestination;
while ((*strD++=*strSource++)!='');
return strDestination;
}


char* strcpy(char *d, const char *s)
{
char *r=d;
while((*d++=*s++));
return r;
}


strcat原型
extern char *strcat(char *dest,char *src);
用法
#include <string.h>
在C++中,则存在于<cstring>头文件中。
功能
把src所指字符串添加到dest结尾处(覆盖dest结尾处的'')并添加''。
说明
src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。
返回指向dest的指针。
函数实现:

复制代码 代码如下:


//将源字符串加const,表明其为输入参数
char *strcat(char *strDest, const char *strSrc)
{
// 后文return address,故不能放在assert断言之后声明address
char *address = strDest;
assert((strDest != NULL) && (strSrc != NULL)); //对源地址和目的地址加非0断言
while(*strDest) //是while(*strDest!='')的简化形式
{
//若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,
//那么strDest将指向''的下一个位置。/所以要在循环体内++;因为要是*strDest最后指
//向该字符串的结束标志''。
strDest++;
}

while(*strDest++ = *strSrc++)
{
NULL; //该循环条件内可以用++,
} //此处可以加语句*strDest='';无必要
return address; //为了实现链式操作,将目的地址返回
}

(责任编辑:豆豆)
下一篇:

Linux编程C++内存管理的指针传递详解

上一篇:

C语言中字符串和数字的相互转换实现代码

  • 信息二维码

    手机看新闻

  • 分享到
打赏
免责声明
• 
本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们 xfptx@outlook.com