使用c语言将两个字符串拼接起来,要求不用stract函数
时间: 2024-11-27 10:22:56 浏览: 1
LFS-BOOK-6.6
在C语言中,如果你想要将两个字符串拼接起来而不想使用`strcat()`函数,可以手动创建一个新的字符数组,并逐个添加每个字符。以下是步骤:
1. **初始化新数组**: 首先,你需要计算两个字符串的总长度加一(因为字符串结尾需要一个空字符'\0'来表示字符串结束)。
```c
int totalLength = strlen(str1) + strlen(str2) + 1;
char result[totalLength]; // 新数组用于存储结果
```
2. **复制第一个字符串**: 然后从`str1`开始复制字符到`result`数组。
```c
strcpy(result, str1);
```
3. **添加第二个字符串**: 接下来,遍历`str2`并将其内容追加到`result`的剩余部分。
```c
for (int i = 0; str2[i] != '\0'; i++) {
result[strlen(str1) + i] = str2[i];
}
```
4. **添加终止符**: 最后,在`result`数组的末尾添加`\0`。
```c
result[strlen(str1) + strlen(str2)] = '\0';
```
完整的示例代码如下:
```c
#include <stdio.h>
#include <string.h>
void manualConcat(char* str1, char* str2, char* result) {
int totalLength = strlen(str1) + strlen(str2) + 1;
strcpy(result, str1);
for (int i = 0; str2[i] != '\0'; i++) {
result[strlen(str1) + i] = str2[i];
}
result[strlen(str1) + strlen(str2)] = '\0';
}
int main() {
char str1[] = "Hello";
char str2[] = "World!";
char result[50]; // 假设最大长度为50
manualConcat(str1, str2, result);
printf("Result: %s\n", result); // 输出 "HelloWorld!"
return 0;
}
阅读全文