gpt4 book ai didi

c - 如何制作一个字符串数组的数组?

转载 作者:太空宇宙 更新时间:2023-11-04 07:53:13 25 4
gpt4 key购买 nike

所以,我有三个字符串数组指针:

char *list1[3] = {"String 11", "String 12", "String 13"};
char *list2[3] = {"String 21", "String 22", "String 23"};
char *list3[3] = {"String 31", "String 32", "String 33"};

我需要在运行时根据用户输入访问它们。例如:如果输入为 0,则访问 list1 等等。我想我可以将这些数组指针组成一个数组,它可以工作。这是我尝试过的:

char *ArrayList[3] = {*list1, *list2, *list3};

但是当我尝试打印 ArrayList[0]、ArrayList[1] 和 ArrayList[2] 时,它只打印了每个列表的第一个元素。

我在这里做错了什么?

最佳答案

你的 ArrayList 应该保存指向指针的指针,你需要一个循环来打印一行的所有列(否则你将总是只得到一行的第一个元素):

char *list1[3] = {"String 11", "String 12", "String 13"};
char *list2[3] = {"String 21", "String 22", "String 23"};
char *list3[3] = {"String 31", "String 32", "String 33"};

char **ArrayList[3] = {list1, list2, list3};

int main() {
for (int r=0;r<3;r++) {
for (int c=0; c<3; c++) {
printf("%s ",ArrayList[r][c]);
}
printf("\n");
}
}

输出:

String 11 String 12 String 13 
String 21 String 22 String 23
String 31 String 32 String 33

关于c - 如何制作一个字符串数组的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52470360/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com