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中