<span style="font-size:18px;">流行的strcpy函数写法是:
void strcpy(char *ch1,const char *ch2)
{
while(*ch2 != '\0')
{
*ch1 ++ = *ch2 ++; // 这样拆开来写后,易读性强一些~~
}
}
如果考虑ch1,ch2的安全性,提前要判断这两个指针是否为空,则可以这么写
char *my_strcpy(char *dst,const char *src)
{
assert(dst != NULL);
assert(src != NULL);
char *ret = dst;
while((* dst++ = * src++) != '\0')
;
return ret;
}
注:
1,检查指针有效性;
2,返回目的指针des;
3,源字符串的末尾 '\0' 需要拷贝。
************************************************************************************************************************************************************
关于该函数,也可以返回实际拷贝的字符个数,
如:
int strcpy(char *ch1,const char *ch2)
{
int flag=0;
while(*ch2 != '\0')
{
*ch1 ++ = *ch2 ++; // 这样拆开来写后,易读性强一些~~
flag++;
}
return flag;
}
************************************************************************************************************************************************************
while(*ch2 != '\0')
{
*ch1 ++ = *ch2 ++; // 这样拆开来写后,易读性强一些~~
flag++;
}
循环里的内容,其实可以进一步拆分
例如,
while(*Src!='\0')
{
*Dest=*Src;
Dest++;
Src++;
}</span>
strcpy函数的实现
最新推荐文章于 2024-05-22 14:54:26 发布