1、strcpy函数的各个参数介绍
char* strcpy (char* destination,const char* source)
①函数名为strcpy
②返回值类型为char*,返回的是目标空间的起始地址
③函数的参数列表中有两个地址,第一个是目标空间的地址,第二个是源字符串的地址。
2、strcpy函数的作用
strcpy函数的作用就是将一个字符串拷贝一份,这两个字符串内容是相同的,在内存中也是有两份这个字符串。
3、strcpy函数的细节分析
①strcpy函数在拷贝的时候,将源字符串的‘\0’也拷贝到了目标空间
②目标空间的空间必须足够大,可以装得下拷贝的这个字符串。
③源字符串必须是以'\0'结尾的。
代码分析如下:
#include
#include
int main()
{
char ch1[] = "****************";
char ch2[] = "abcdef";
strcpy(ch1, ch2);
printf("%s\n",ch1);
return 0;
}
以上代码和数据监视图可证,strcmp函数拷贝时,会将源字符串的'\0'也拷贝到目标空间。
第②条,如果目标空间不足够大,编译器会报错误,这里就不作演示了,可以自行检验。
第③条,如果源字符串不是以'\0'结尾,这种情况可以建立字符数组,然后初值赋多个单个字符,然后将数组传递给strcpy函数,经过验证,程序虽然没有挂掉,但是程序也没有输出。代码如下,也可以自行验证。
#include
#include
int main()
{
char ch1[20];
char ch2[] = {'a','b','c'};
strcpy(ch1, ch2);
printf("%s\n",ch1);
return 0;
}
4、strcpy函数的模拟实现
char* my_strcpy(char* des, const char* sou)
{
char* p = des;
while (*p++ = *sou++);
return des;
}