#include<stdio.h>
#include<assert.h>
char *strcopy(char * strDest , const char * strSrc);
int main()
{
// char *p ;
char string[15];
char str1[10]="012345678";
strcopy(string,str1);
// p=string ;
// printf("%s",p); 这样修改运行,依旧正确的,所以说明返回指针 r 后 ,和 string p 都是代表同一地址
printf("%s",string);
}
char *strcopy(char * strDest , const char * strSrc) 注意要用 char * ,为了一致性
{
char * r=strDest;
assert((strDest!=NULL)&&(strSrc!=NULL));
while( ( *strDest++ = *strSrc++ )!='\0');
return r;
}
// 注意事项 const 修饰 ,空指针检查,返回目标地址,'\0'
strcpy返回目标串的地址,这个返回值的目的是可以使strcpy用在链式表达式中,增加灵活性
比如
char s1[]="12345";
char s2[100];
int len;
len=strlen(strcpy(s2,s1+1)); //从s1的第二个字符开始复制内容到s2,并且计算出s2的长度