c语言 不用strcat函数,将字符串是s2链接到s1的后面
时间: 2024-12-12 17:32:10 浏览: 4
C语言 不使用strcat函数实现连接两个字符串功能代码
在C语言中,如果你想将字符串`s2`连接到字符串`s1`的后面,但不使用`strcat()`函数,你可以手动遍历`s1`,并在适当的位置添加`s2`的字符。这里是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 为了获取strlen()函数
// 自定义字符串拼接函数
void string_concatenate(char *s1, char *s2) {
// 获取s2的长度
size_t len_s2 = strlen(s2);
// 计算s1加上s2后的总长度
size_t total_len = strlen(s1) + len_s2;
// 动态分配内存以存储新的字符串
s1 = realloc(s1, total_len + 1); // 加1是为了包含字符串结束符'\0'
// 将s2复制到s1末尾
for (size_t i = 0; i < len_s2; i++) {
s1[strlen(s1)] = s2[i]; // 注意,这里是索引加strlen(s1),因为初始时s1的结尾是'\0'
s1++;
}
s1[strlen(s1)] = '\0'; // 添加字符串结束符
}
int main() {
char s1[50] = "Hello, ";
char s2[] = "world!";
string_concatenate(s1, s2);
printf("合并后的字符串: %s\n", s1);
free(s1); // 不忘记释放动态分配的内存
return 0;
}
```
注意:这个方法手动操作内存可能会导致内存溢出,如果`s1`和`s2`的总长度超过之前为其分配的空间,就需要更谨慎地管理内存。
阅读全文