如何用C语言不使用字符串相关库函数来实现两个字符数组的拼接?
时间: 2024-12-19 22:19:35 浏览: 4
在C语言中,如果不用字符串库函数如`strcat()`来实现两个字符数组的拼接,可以手动遍历第一个数组,并将每个元素追加到第二个数组的末尾。这是一个基本的示例:
```c
#include <stdio.h>
// 拼接函数
void array_concat(char* dest, char* src) {
// 遍历源数组
for (int i = 0; src[i] != '\0'; ++i) {
// 将源数组元素复制到目标数组
dest[i] = src[i];
// 如果到达源数组末尾,添加空字符'\0'作为分隔
if (src[i] == '\0') {
dest[i+1] = '\0'; // 结束拷贝并添加终止符
break;
}
}
}
int main() {
char arr1[] = "Hello, ";
char arr2[] = "World!";
char result[50]; // 足够容纳arr1和arr2的总长度加上终止符
array_concat(result, arr1);
array_concat(result + strlen(arr1), arr2); // 注意偏移量
printf("Concatenated arrays: %s\n", result);
return 0;
}
```
在这个例子中,我们首先计算了`arr1`的长度(包括空字符`\0`),然后从`result`的开头开始,先复制`arr1`,再接着复制`arr2`。
阅读全文