c语言用二维数组存储字符串
时间: 2023-12-28 15:04:11 浏览: 225
在C语言中,可以使用二维字符数组来存储多个字符串,每个字符串占据一行。
下面是一个示例:
```c
#include <stdio.h>
int main() {
char strings[3][20] = {"Hello", "World", "C Language"};
int i;
for (i = 0; i < 3; i++) {
printf("%s\n", strings[i]);
}
return 0;
}
```
在这个示例中,我们定义了一个大小为3x20的二维字符数组`strings`。其中,每个字符串最长可以包含19个字符,因为最后一个字符必须是空字符`\0`,用来表示字符串的结束。
我们在定义数组时,也可以只定义一维的大小,然后在后面初始化每个字符串:
```c
char strings[3][20];
strings[0] = "Hello";
strings[1] = "World";
strings[2] = "C Language";
```
注意,在定义二维字符数组时,我们必须指定每一行的长度。如果不确定每个字符串的长度,可以使用动态内存分配函数`malloc()`来创建一个二维字符数组。例如:
```c
char **strings;
int i;
strings = (char **)malloc(3 * sizeof(char *));
for (i = 0; i < 3; i++) {
strings[i] = (char *)malloc(20 * sizeof(char));
}
strcpy(strings[0], "Hello");
strcpy(strings[1], "World");
strcpy(strings[2], "C Language");
```
在这个示例中,我们使用了两次`malloc()`函数来动态分配内存。第一次分配3个指针的空间,第二次分配每个字符串的长度为20个字符的空间。然后,我们使用`strcpy()`函数将每个字符串复制到分配的空间中。记得在使用完毕后,要使用`free()`函数来释放内存。
阅读全文