1.strcpy的使用:
char* strcpy(char* destination,const char* source)
返回类型是字符指针,参数是接受方字符串的首地址和要拷贝的字符串的首地址
- 从接受地的‘\0’开始拷贝,会将源字符串中的’\0’也拷贝过来
- 目标空间必须足够大,能放开源字符串
- 目标空间必须可变
使用举例:
#include<stdio.h>
#include<string.h>
int main()
{
char arr1[] = "hello bit";
char arr2[20] = "xxx";
strcpy(arr2, arr1);
printf("%s\n", arr2);
return 0;
}
2.strcpy的模拟实现:
版本一:
#include<stdio.h>
#include<string.h>
void my_strcpy(char* dest, const char* src)
{
//当arr2不等于'\0'时
while (*src)
{
*dest = *src;
dest++;
src++;
}
//当arr2等于'\0'时
*dest = *src;
}
int main()
{
char arr1[] = "abcdef";
char arr2[20] = { 0 };
my_strcpy(arr2, arr1);
printf("%s\n", arr2);
return 0;
}
版本二:(高阶版)两部分合到一起
#include<stdio.h>
#include<string.h>
void my_strcpy(char* dest, const char* scr)
{
while (*dest++ = *scr++)
{
;
}
}
int main()
{
char arr1[] = "abcde";
char arr2[20] = { 0 };
my_strcpy(arr2, arr1);
printf("%s", arr2);
}
这个方法的妙处就在于 while循环的条件中,当 *scr=’\0’时,while 循环会自动跳出,而且scr中‘\0’也能被拷贝到dest中