C语言怎么合并字符串
时间: 2025-02-03 15:55:56 浏览: 77
### C语言中合并字符串的方法
#### 使用 `sprintf` 函数
可以通过 `sprintf` 函数来实现字符串的拼接操作。此方法允许格式化输出并将其保存至目标字符串中。
```c
#include <stdio.h>
int main() {
char str1[] = "Hello, ";
char str2[] = "World!";
char result[50];
sprintf(result, "%s%s", str1, str2);
printf("%s\n", result); // Hello, World!
return 0;
}
```
上述代码展示了如何利用 `sprintf` 来组合两个不同的字符串[^1]。
#### 利用 `strncat` 函数
另一种方式是采用标准库中的 `strncat` 函数来进行部分或全部字符串附加工作。这里有一个简单的例子说明怎样只取源串的一部分加入目的串后面:
```c
#include <stdio.h>
#include <string.h>
int main(){
char dest[50] = "Hello, ";
char src[] = "World!";
strncat(dest, src, strlen(src)); // 追加整个src字符串
printf("%s\n", dest); // Hello, World!
return 0;
}
```
这段程序片段显示了通过指定最大拷贝长度参数控制追加多少个字符的过程[^2]。
#### 手动逐字符复制
对于更复杂的场景,比如交替从多个输入串读取字符构建新串的情况,则可能需要编写自定义逻辑完成任务。下面的例子实现了这种特定模式下的字符串混合:
```c
#include <stdio.h>
#include <string.h>
int main(){
char str1[100], str2[100];
char arr[200];
int i, j;
while (scanf("%s", &str1) != EOF){
scanf("%s", &str2);
int len1 = strlen(str1), len2 = strlen(str2);
int k = 0;
for(i = 0, j = len2 - 1; i < len1 || j >= 0;) {
if(k % 2 == 0 && i < len1)
arr[k++] = str1[i++];
else if(j >= 0)
arr[k++] = str2[j--];
if (!(i < len1 || j >= 0))
break;
}
arr[k] = '\0';
printf("%s\n", arr);
}
return 0;
}
```
该实例体现了当内置函数无法满足需求时,开发者可以根据实际业务规则灵活处理数据的方式[^3]。
阅读全文
相关推荐
















