赞
踩
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; }
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。