源程序:
#include <stdlib.h>
#include <stdio.h>
#include <assert.h>
char *strcpy(char *strDest,const char*strSrc);
int main(int argc,char **argv)
{
if(argc<3)
{
printf("argument error \n");
exit(1);
}
char *str=strcpy(argv[1],argv[2]);
printf("the string is %s \n",str);
return 0;
}
char *strcpy(char *strDest,const char*strSrc)
{
assert(strDest!=NULL&&(strSrc!=NULL));
char *strDestcpy=strDest;
while ((*strDest++=*strSrc++)!='\0');
return strDestcpy;
}
qust@qust-K42JZ:~/test$ ./str_cpy s1 sssssssssss
the string is sssssssssss
修改后:
#include <stdio.h>
#include <assert.h>
char *strcpy(char *strDest,const char*strSrc);
int main(int argc,char **argv)
{
if(argc<3)
{
printf("argument error \n");
exit(1);
}
char *str=strcpy(argv[1],argv[2]);
printf("the string is %s \n",str);
return 0;
}
char *strcpy(char *strDest,const char*strSrc)
{
assert(strDest!=NULL&&(strSrc!=NULL));
// char *strDestcpy=strDest;
while ((*strDest++=*strSrc++)!='\0');
return strDest;
}
运行:
qust@qust-K42JZ:~/test$ ./str_cpy s1 sssssssssss
the string is ss
??
转参考:http://www.cppblog.com/SINE/archive/2011/04/28/145180.html