在上一次的基础上,对strcpy和strncpy进行比较。
同:strcpy和strncpy都是字符串拷贝的函数;
异:strcpy以'\0'结束字符的拷贝;
而strncpy是以要拷贝的字符串的个数进行操作的;
strcpy的简单实现:
char* my_strcpy(char* dest,char* src)
{
assert(dest && src);
while(*dest++ = *src++);
return dest;
}
strncpy的简单实现:
char* my_strncpy(char* dest,const char* src,int len)
{
assert(dest && src);
while(len--)
{
*dest++ = *src++;
}
*dest = '\0'; //需要手动添加'\0',如果没有将源字符串全部拷贝过来,那么就会导致目标字符串中没有'\0'
return dest;
}
注意:在开辟str1空间时一定要大于等于需要拷贝的字符串的长度,否则程序就会崩溃;