strcpy指的是字符串的拷贝,就是把源字符串拷贝到目标空间里面
1、源字符串的拷贝是是以‘\0’结尾的,同时会将字符串中的’\0’拷贝过去
#include<stdio.h>
int main(){
char arr1[20]="xxxxxxxxxxxxx";
char arr2="hello world";
strcpy(arr1,arr2);
printf("%s",arr1);
return 0;
}
此时这里的arr1会变成是hello world\0x,但是打印出来的arr1是hello world
2、目标空间的字符串必须是可变的,不能是常量字符串
#include<stdio.h>
int main(){
char* p="hello world";
char arr[]="abcdef";
strcpy(p,arr);
printf("%s",p);
return 0;
}
这里此时是会出错的,因为p指向的常量字符串,所有不能这样写
3、源字符串的空间必须足够大,如果字符串常量不够大,拷贝过去是会出错的
4、模拟实现strcpy
char* my_strcpy(char*dest,const char* str) {
assert(dest);
assert(str);
char* ret = dest;
while (*dest++ = *str++) {
;
}
return ret;
}
int main() {
char arr[10] = { 0 };
char* p = "abcdef";
my_strcpy(arr, p);
printf("%s", arr);
return 0;
}
版权声明:本文为m0_48857897原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。