#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//strcat()实现机理
char *mycat(char* s1,char*s2);
int main(int argc,char* argv[]){
char s1[20]="hello";
char* s2="abcdef";
mycat(s1,s2);
printf("%s",s1);
return 0;
}
char *mycat(char* s1,char*s2){
//指针
char* ret=s1;
strcpy(s1+strlen(s1),s2);
return ret;
}
**strcpy(s1+strlen(s1),s2);**这一句话不了解是什么意思,希望大家帮帮忙,谢谢了。
s1的长度是5,strlen(s1)=5,也就是s2添加到hello后面即复制后是helloabcdef
strcpy(s1+strlen(s1),s2);中的s1+strlen(s1)将要复制的字符串从s1+5位置开始放置
如果是strcpy(s1,s2);则s1变成s2了,就不是连接了而是替换了
mycat是字符串连接函数,就是将一个字符串连接到另一个字符串尾部
s1+strlen(s1)就是指向s1字符串的尾部,然后将s2字符串复制到s1字符串的尾部