文档介绍:【最新+免费】字符串拷贝
【最新编排】
----------------------------------------------------------------------------------------------------------------------
/*
* 说明:字符串拷贝版本,
* 参数:dest目标地址,src源地址
* 返回:返回拷贝好地地址;如果出错或者有重叠,无定义
* 异常:可能出现字符串溢出,及dest所占空间不如src所占空间大.
*/
char *strcpy_v,(char *dest , const char *src) {
//调试时,使用断言,入口检测
assert( (dest!=NULL) && (src!=NULL) );
//注意这里地内存指向参数dest所在地内存,不是栈内存,因而可以在函数中返回
char *to = dest;
//主要操作在while条件中完成
while( (*dest++ = *src++)!='\0')
{
NULL;
}
//返回拷贝字符串首地址,方便连缀,比如strlen(strcpy(dest,"hello"))
return to;
}
/*
* 说明:字符串拷贝版本,
* 参数:dest目标地址,src源地址
* 返回:返回拷贝好地地址;如果出错,无定义
* 异常:可能出现字符串溢出,及dest所占空间不如src所占空间大.
*/
char *strcpy_v,(char *dest , const char *src) {
char *d = dest;
char c;
while((c=*src++) != '\0')
{
*(dest++)=c;
}
*dest='\0';
return d;
}
/*
* 说明:字符串拷贝版本,(你能找出错误地原因吗)
* 参数:dest目标地址,src源地址
* 返回:返回拷贝好地地址;如果出错,无定义
* 异常:可能出现字符串溢出,及dest所占空间不如src所占空间大.
*/
char *strcpy_v,_error(char *dest , const char *src)
{
char *d = dest;
char c;
while((c=*src++) != '\0')
{
*(d++)=c;
}
*d='\0';
return d;
}
/*
* 说明:字符串拷贝版本3
* 参数:dest目标地址,src源地址
* 返回:返回拷贝好地地址;如果出错,无定义
* 异常:可能出现字符串溢出,及dest所占空间不如src所占空间大.
*/
char *strcpy_v3(char *dest , const char *src)
{
char *d = dest;
char c;
while(*src)
*dest++ = *src++;
*dest='\0';
return d;
}
/*
* 说明:字符