第一次尝试
#include<stdio.h>
#include<stdlib.h>
char* myStrcat(char* str1,const char* str2) {
//参数合法性检验
if (str1 == NULL || str2 == NULL) {
return NULL;
}
int num = 0;
while (str1[num] != '\0') {
num++;
}
//printf("%d\n", num);
char* ret = str1;
int i = 0;
for (i = 0; str2[i] != '\0'; i++) {
str1[num + i] = str2[i];
}
str1[num + i] = '\0';
return ret;
}
int main() {
//注意,一定要将目标数组的空间设置足够大,不然会出现低级错误
char name1[1024] = "mabaoguo";
char name2[] = "bujiangwude";
myStrcat(name1, name2);
printf("%s\n", name1);
return 0;
}
注:一定要进行参数合法性检验,因为使用者可能是个sb;在需要改变目标数组的时候,一定要赋予足够大的空间,保证代码的健壮性。