帮我用c加加写一个使用指针变量将一个字符串拼接到另一个字符串的后面(不能使用拼接函数)(比如 "abcfe" 后面拼接"12345",成为"abcfe 12345")
时间: 2024-10-06 17:02:17 浏览: 37
在 C 语言中,由于没有内置的字符串拼接函数,我们可以手动通过指针操作实现这个功能。这里是一个示例,假设我们有两个字符数组 `str1` 和 `str2`,以及它们的长度,我们需要在 `str1` 的结尾处添加 `str2`:
```c
#include <stdio.h>
#include <string.h>
void appendToString(char* str1, char* str2) {
// 计算str2的长度
int len2 = strlen(str2);
// 获取str1末尾的位置
char* end = str1 + strlen(str1);
// 将str2复制到end位置之后
for (int i = 0; i < len2; ++i) {
*end++ = *str2++;
}
// 如果str1末尾有空格,则不需要额外添加空格,否则添加一个
if (*(end - 1) != '\0') {
*end++ = ' ';
}
*end = '\0'; // 添加字符串结束符
}
int main() {
char str1[] = "abcfe";
char str2[] = "12345";
appendToString(str1, str2);
printf("Concatenated string: %s\n", str1); // 输出: abcfe 12345
return 0;
}
```
在这个例子中,`appendToString` 函数接收两个字符串的地址,然后遍历 `str2` 并将其逐个字符插入到 `str1` 的末尾。注意,最后需要在 `str1` 的末尾添加一个空格,并确保字符串以空字符 `\0` 结束。
阅读全文