我将在C中的数组中存储字符串数组.
例如
{
{"hello", "world"},
{"my", "name", "is"},
{"i'm", "beginner", "point", "makes"}
}
Run Code Online (Sandbox Code Playgroud)
我想存储以上数据.
我试着用
char *arr1 = {"hello", "world"};
char *arr2 = {"my", "name", "is"};
char *arr3 = {"i'm", "beginner", "point", "makes"}
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将这些数组存储在一个数组中.
提前致谢.
PS.
如何打印所有元素?
const char **arr[] = {arr1, arr2, arr3};
Run Code Online (Sandbox Code Playgroud)
zak*_*ter 10
如果你想要一个char**
数组,只需:
const char *arr1[] = {"hello", "world", NULL};
const char *arr2[] = {"my", "name", "is", NULL};
const char *arr3[] = {"i'm", "beginner", "point", "makes", NULL};
const char **arr[] = {arr1, arr2, arr3, NULL};
Run Code Online (Sandbox Code Playgroud)
请注意,NULL
终结符用于跟踪不同数组的大小,就像以NULL结尾的字符串一样.
int i, j;
for(i = 0; arr[i] != NULL; ++i) {
for(j = 0; arr[i][j] != NULL; ++j) {
printf("%s ", arr[i][j]);
}
printf("\n");
}
Run Code Online (Sandbox Code Playgroud)
哪个输出:
hello world
my name is
i'm beginner point makes
Run Code Online (Sandbox Code Playgroud)
与我最初的评估不同,它可以使用单个文字来完成.
#include <stdio.h>
int main()
{
char* arr[3][4] = {
{"hello", "world"},
{"my", "name", "is"},
{"i'm", "beginner", "point", "makes"}
};
printf ("%s", arr[2][3]);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
数组1和2将在末尾用零填充为长度为4.
输出:
品牌
在这里测试:http://ideone.com/yDbUuz
归档时间: |
|
查看次数: |
294 次 |
最近记录: |