C语言 字符串不断存入数组尾部
时间: 2024-07-17 21:00:50 浏览: 76
C语言 数据结构之连续存储数组的算法
在C语言中,如果你想将字符串不断地追加到字符数组(数组尾部)而不预先预知最终长度,通常我们会使用动态内存分配或者循环扩展数组的方式来实现。这里有个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc和free用于动态内存管理
void appendString(char* arr, const char* str) {
int len = strlen(arr); // 获取现有数组长度
int new_len = len + strlen(str) + 1; // 需要考虑新字符串的长度以及结束符'\0'
// 如果空间不够,动态扩容
if (new_len > strlen(arr)) {
char* newArr = realloc(arr, new_len * sizeof(char)); // 动态分配新的数组空间
if (newArr == NULL) { // 处理可能的内存分配失败
perror("Memory allocation failed");
return;
}
arr = newArr;
}
// 将新字符串连接到数组尾部
strcat(arr, str);
}
int main() {
char storage[20]; // 初始数组大小为20
char stringToAppend[] = "Hello, world!";
appendString(storage, stringToAppend);
printf("Final string in the array: %s\n", storage); // 输出结果
free(storage); // 清理内存,防止内存泄漏
return 0;
}
```
在这个`appendString`函数中,我们首先检查当前数组是否足够存储新字符串,如果不够就申请更大的内存。然后使用`strcat`函数将新字符串连接到数组的末尾。
阅读全文