一.strcpy()函数的简介
strcpy()是在一个空间里拷贝一个字符串,遇到\0停止,同时也会拷贝\0
strcpy()函数声明:
char * strcpy ( char * destination, const char * source);
destination:目标空间
source:拷贝空间(存放字符串)
返回的类型是字符串指针,就是目标空间里的字符串首地址
二.注意事项
1.拷贝时,原字符串必须要有'\0',strcpy()遇见‘\0’才会停止拷贝
1. #include<stdio.h> 2. #include<string.h> 3. int main() 4. { 5. char brr[20]={'a','b','c'}; 6. char crr[20]={0}; 7. strcpy(crr,brr); 8. printf("%s\n",crr); 9. return 0; 10. }
这里会拷贝失败,因为数组brr里的字符串中没有 \0,strcpy()遇见‘\0’才会停止拷贝
2.拷贝空间必须可以修改,不能是常量字符串
1. #include<stdio.h> 2. #include<string.h> 3. int main() 4. { 5. char *str="abcdef"; 6. char drr[20]="hello"; 7. strcpy(str,drr); 8. printf("%s\n",str); 9. return 0; 10. }
这里会运行失败,str是常量字符串,空间不可修改,所以无法拷贝
3.目标空间必须还有拷贝空间的空间才能拷贝成功
就是说目标空间arr剩余空间能够容下拷贝空间brr的字符串.
三.模拟实现strcpy()
1. #include<stdio.h> 2. void my_strcpy(char* dest,char* src) 3. { 4. while(1) 5. { 6. *dest=*src; 7. if(*dest=='\0') 8. { 9. break; 10. } 11. dest++; 12. src++; 13. } 14. } 15. int main() 16. { 17. char arr[20]="hello "; 18. char brr[20]="world"; 19. my_strcpy(arr,brr); 20. printf("%s\n",arr); 21. return 0; 22. }
运行结果: