1.描述
- char * strcpy ( char * destination, const char * source );
- 返回值为char*方便链式表示。
- dst空间足够大,并且和源地址没有重叠。
- (如果重叠并且目的端,地址在源地址“后面”,要从后向前赋值,不然会覆盖’\0‘)
5. 结尾’\0‘,需要拷贝。
2.代码展示
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<string.h>
char* mystrcpy(char* dst,const char *src)
//char * strcpy ( char * destination, const char * source )
{
assert(dst&&src);
char* ret = dst;
/*while (*src != '\0')
{
*dst++ = *src++;
}
*dst = *src;*/
//实现链式连接(strlen(strcpy(dst,src)))
while ((*dst++ = *src++) != '\0');
return ret;
}
void test1()
{
char arr1[] = "abcd";
//char arr1[] = { 'a','b','c','d', '\0'};
char arr2[1024] ;
strcpy(arr2, arr1);
printf("%s\n", arr2);
char arr3[1024];
mystrcpy(arr3,arr1);
printf("%s\n", arr3);
}
int main()
{
test1();
system("pause");
return 0;
}