1.strcpy 字符串复制
char* strcpy(char* dest,const char* src);
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间。
说明:src和dest所指内存区域不可以重叠且dest必须要有足以容纳src的字符串,返回值指向dest指针,strcpy无法判断目标字符数组dest的长度。
strcpy容易溢出,strncpy更安全一些,因为限制字符长度,且strncpy可以选择一段字符输出,strcpy不可以。
函数实现:
char* my_strcpy(char *dest, const char *src)
{
char* ret = dest;
assert(dest!=NULL);
assert(src!=NULL);
while((*dest++ = *src++) != '\0');
{
;
}
return ret;
}
strcpy已经把src复制给dest了,为什么要返回char*类型的值?
答:第一是为了使函数能够支持链式表达式,例如:int len=strlen(strcpy(str1,str2));其次源字符串是已知的,返回它是没有意义的。
2.strcat 连接字符串
char *strcat(char *dest,const char *src);
功能:把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')。