1 #include<stdio.h>
2 #include <assert.h>
5 void myStrcpy(char* Dest, const char *Src)
6 {
7 assert((Dest!= NULL)&&(Src!=NULL));
8 while((*Dest = *Src)!='\0')
9 {
10 Dest++;
11 Src++;
12 }
13 }
14
15 int main()
16 {
17 char dest[] = "helloworld";//注意
18 char* src = "hello";
19 myStrcpy(dest, src);
20 printf("%s",dest);
21 return 0;
22 }
注意:在第17行中,我们用的是字符数组,因为如果用字符指针的话,字符常量存放在常量区,指针会指向这个地址,不能通过修改指针指向内容修改字符串。如果用字符数组的话,会把“helloworld“内容复制到数组中去,可以被修改。
strcpy函数原型:
1 char *strcpy(char *strDest, const char *strSrc)
2 {
3 assert((strDest != NULL) && (strSrc != NULL)) ;
4 char *address = strDest;
5 while((*strDest++ = *strSrc++) != '\0') //复制直达源串结束
6 NULL;
7 return address;
8 }