源码网商城,靠谱的源码在线交易网站 我的订单 购物车 帮助

源码网商城

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

  • 时间:2021-07-09 22:50 编辑: 来源: 阅读:
  • 扫一扫,手机访问
摘要:C语言中字符串常用函数strcat与strcpy的用法介绍
[b]strcpy原型声明:extern char *strcpy(char* dest, const char *src); 头文件:#[/b]include <string.h> [b]功能:[/b]把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间 [b]说明:[/b]src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 [b]函数实现: [/b]
[u]复制代码[/u] 代码如下:
/**********************  * C语言标准库函数strcpy的一种典型的工业级的最简实现  * 返回值:目标串的地址。  * 对于出现异常的情况ANSI-C99标准并未定义,故由实现者决定返回值,通常为NULL。  * 参数:  * strDestination 目标串  * strSource 源串  ***********************/  char *strcpy(char *strDestination,const char *strSource)  {    assert(strDestination!=NULL && strSource!=NULL);    char *strD=strDestination;    while ((*strD++=*strSource++)!='\0');    return strDestination;  }  /*  GNU-C中的实现(节选):  */  char* strcpy(char *d, const char *s)  {    char *r=d;    while((*d++=*s++));    return r;  }  /* while((*d++=*s++)); 的解释:两层括号是为了取赋值表达式的值,        而赋值表达式的值为左操作数,所以在复制NULL后,循环停止 */
[b]strcat原型 [/b][b]extern char *strcat(char *dest,char *src); 用法 [/b]#include <string.h> 在C++中,则存在于<cstring>头文件中。 [b]功能 [/b]把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。 [b]说明 [/b]src和dest所指内存区域不可以重叠且dest必须有足够的空间来容纳src的字符串。 返回指向dest的指针。 [b]函数实现: [/b]
[u]复制代码[/u] 代码如下:
//将源字符串加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!='\0')的简化形式   {     //若使用while(*strDest++),则会出错,因为循环结束后strDest还会执行一次++,     //那么strDest将指向'\0'的下一个位置。/所以要在循环体内++;因为要是*strDest最后指     //向该字符串的结束标志'\0'。     strDest++;   }   while(*strDest++ = *strSrc++)   {     NULL;             //该循环条件内可以用++,   }                   //此处可以加语句*strDest='\0';无必要   return address;     //为了实现链式操作,将目的地址返回 }
  • 全部评论(0)
联系客服
客服电话:
400-000-3129
微信版

扫一扫进微信版
返回顶部