【问题描述】:
模拟实现strcat,将字符串str2的内容拼接到字符串str1中。
【问题要点】:
1、源字符串必须以’\0’结束,拼接字符串完成后也必须以’\0’结束。
2、目标空间即str1数组要足够大,以确保能够存放源字符串。
3、目标空间必须可变。
【实现代码】
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h>
char* Strcat(char* dest, const char* src) {
assert(dest != NULL);
assert(src != NULL);
int i = 0;
for (; dest[i] != '\0'; ++i);//这个循环结束后i对应的元素就是‘\0’
for (int j = 0; src[j] != '\0'; ++j, ++i) {
dest[i] = src[j];
}
dest[i] = '\0';//结束符也要拷贝
return dest;
}
int main() {
char str1[1024] = "abcd";
char str2[1024] = "haha";
Strcat(str1, str2);
printf("%s\n", str1);
system("pause");
return 0;
}
【运行结果】