C语言 实现可变字符串
时间: 2024-04-14 12:09:13 浏览: 125
在 C 语言中,可以使用字符数组来表示可变字符串。我们可以使用指针来动态分配内存空间,并且根据需要调整字符串的长度。下面是一个简单的例子:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main() {
char *str = malloc(sizeof(char) * 10); // 初始分配一个长度为 10 的字符数组
strcpy(str, "hello"); // 将字符串 "hello" 复制到 str 中
printf("%s\n", str); // 输出字符串
str = realloc(str, sizeof(char) * 20); // 调整数组长度为 20
strcat(str, " world"); // 将字符串 " world" 添加到 str 的末尾
printf("%s\n", str); // 输出新的字符串
free(str); // 释放内存空间
return 0;
}
```
在这个例子中,我们首先使用 `malloc()` 函数分配一个长度为 10 的字符数组,并将字符串 "hello" 复制到数组中。然后,我们使用 `realloc()` 函数调整数组长度为 20,并使用 `strcat()` 函数将字符串 " world" 添加到数组末尾。最后,我们使用 `free()` 函数释放内存空间。
需要注意的是,当使用 `realloc()` 函数调整数组长度时,原来的数组内容会被保留。因此,在将新字符串添加到数组中之前,我们需要先将数组末尾添加一个空字符 '\0',以确保新的字符串能够正确地连接到原来的字符串末尾。
阅读全文