C/C++ strcat 函数实现

  • Post author:
  • Post category:其他


int main(int argc,char* argv[]){

if(argc <=2)
return -1;

char *str;

//从command line 得到两个字符串。
str = strcat(argv[1],argv[2]);//很奇怪,如果这里换成 str = strcat(*++argv,*++argv)结果会是反的。
printf("%s",str);
free(str);
return 0;
}

//关键是找到第一个字符串的结束位置,然后复制另一个string。
char* strcat(char *s,char *t){

char *str;
str = (char*)malloc(strlen(s)+strlen(t)+1);

strcpy(str,s); //复制第一个字符串
strcpy((str+strlen(str)-1),t);/*从一个string结束位置开始,去 掉'\0',开始复制下一个string。
while((*str++)!='\0'); 不可以用这样的方法来找到第一个string的结束位置。
这样只会得到第二个string。*/
return str;
}

int strlen(char *str){

char * s;
s = str;
while(*s++ != '\0');
return s-str;
}

void strcpy(char *s,char *t){
while(*s++ = *t++);
}