char * strcpy ( char * destination, const char * source );
目录
注意事项
strcpy的使用需要注意:
1、源字符串必须以 '\0' 结束。
2、会将源字符串中的 '\0' 拷贝到目标空间。
例如
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = "hello";
char str[20] = "hello word";
strcpy(str, arr);
printf("%s\n", str);
return 0;
}
可以得到
3、目标空间必须足够大,以确保能存放源字符串。
4、目标空间必须可变。
例如
给目的地加上const,这时程序就会报错。
strcpy的使用
#include <stdio.h>
#include <string.h>
int main()
{
char arr[] = "hello";
char str[20] = { 0 };
strcpy(str, arr);
printf("%s\n", str);
return 0;
}
其中参数为str,arr
str作为目的地即指向要复制内容的目标数组
arr为源即要复制的 C 字符串。
strcpy的模拟实现
strcpy的原理是将arr里的字符串一一拷贝到str中。
源的内容不变,我们可以加上const。
可以利用源来进行判断,arr中不是\0就拷贝到str中。
这样写看着会有些繁琐,可以简化一下。
strcpy返回的时char*的指针,我们便需要保存目标地的指针。
char* my_strcpy(char* destination, const char* source)
{
char* ret = destination;
assert(destination && source);
while (*destination++ = *source++)
{
;
}
return ret;
}
可以看出答案与原来一样