C语言中二维数组怎么存放字符串
时间: 2023-07-16 10:14:46 浏览: 87
在 语言中,二维数组可以用来存放多个字符串。我们可以定义一个字符型的二维数组,每个一维数组存储一个字符串。下面是一个例子:
```c
#include <stdio.h>
#include <string.h>
int main() {
char words[5][20]; // 定义一个二维数组,用来存放 5 个字符串,每个字符串最长为 19 个字符
// 存储字符串
strcpy(words[0], "hello");
strcpy(words[1], "world");
strcpy(words[2], "how");
strcpy(words[3], "are");
strcpy(words[4], "you");
// 输出字符串
for (int i = 0; i < 5; i++) {
printf("%s\n", words[i]);
}
return 0;
}
```
在上面的例子中,我们定义了一个二维数组 `words`,用来存放 5 个字符串,每个字符串最长为 19 个字符。我们使用 `strcpy` 函数将字符串存储到数组中,并使用 `printf` 函数输出数组中的字符串。
相关问题
c语言二维数组存放字符串,二维数组怎么定义
C语言中,二维数组可以用来存放字符串。二维数组是由多个一维数组组成的,每个一维数组都有相同的数据类型。在二维数组中,第一个下标表示行数,第二个下标表示列数。定义二维字符数组时,可以使用以下语法:
```
char str_array[row_size][col_size];
```
其中,row_size表示行数,col_size表示列数,两者都是整数类型。
例如,以下是一个3行5列的二维字符数组的定义:
```
char str_array;
```
这个数组可以存储3个长度为4的字符串(因为最后一位需要留给字符串结束符'\0')。
如果要给二维字符数组初始化,则可以使用以下语法:
```
char str_array[row_size][col_size] = {
"string1",
"string2",
...
};
```
其中,"string1"和"string2"是两个字符串常量,它们会被依次存储到数组中。
c语言用二维数组存储字符串
在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()`函数来释放内存。