#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<assert.h>
char* my_strcpy(char*p1,char*p2)
{
assert(p1 != NULL);
assert(p2 != NULL);
char* ret = p1;
while (*p2 != '\0')
{
* p1 = * p2;
p1++;
p2++;
}
*p1 = *p2;
return ret;
}
int main()
{
char arr1[] = "abcdef";
char arr2[] = "bit";
my_strcpy(arr2, arr1);
printf("arr2=%s\n", arr2);
return 0;
}
试一下 strcpy
的源码
char* strcpy(char * DstString, const char* SrcString)
{
char* String = DstString;
/* Move bytes brute force */
while (*SrcString)
{
*String = *SrcString;
String++;
SrcString++;
}
/* Null terminate */
*String = 0;
return (DstString);
}