C 语言 拼接字符串
时间: 2025-07-30 21:02:40 浏览: 9
在 C 语言中,字符串本质上是字符数组(`char` 数组),拼接字符串通常使用标准库函数 `strcat()` 或 `strncat()` 来实现。下面是一个使用 `strcat()` 拼接两个字符串的示例:
```c
#include <stdio.h>
#include <string.h>
int main() {
char dest[100] = "Hello, "; // 初始化目标字符串
const char *src = "World!"; // 源字符串
strcat(dest, src); // 拼接 src 到 dest 末尾
printf("拼接后的字符串: %s\n", dest);
return 0;
}
```
### 代码解释:
- `char dest[100] = "Hello, ";`:定义一个足够大的字符数组 `dest`,用于存储拼接后的结果。
- `const char *src = "World!";`:定义一个指向常量字符串的指针。
- `strcat(dest, src);`:将 `src` 指向的字符串拼接到 `dest` 的末尾。
- `printf`:输出拼接后的字符串。
⚠️ **注意事项**:
- `strcat()` **不会检查目标数组是否有足够的空间**,如果 `dest` 空间不足,可能导致缓冲区溢出。
- 推荐使用 `strncat()`,它允许指定最多拼接的字符数,避免溢出。
以下是使用 `strncat()` 的安全版本:
```c
#include <stdio.h>
#include <string.h>
int main() {
char dest[100] = "Hello, ";
const char *src = "World!";
// 最多拼接 sizeof(dest) - strlen(dest) - 1 个字符
strncat(dest, src, sizeof(dest) - strlen(dest) - 1);
printf("拼接后的字符串: %s\n", dest);
return 0;
}
```
---
### 相关问题:
1. 如何在 C 语言中动态拼接多个字符串?
2. `strcat()` 和 `strncat()` 的区别是什么?
3. 如何使用 `sprintf()` 或 `snprintf()` 拼接字符串?
4. 如何在不使用标准库函数的情况下手动实现字符串拼接?
阅读全文
相关推荐




















