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