c - 如何在C中选择一个字符串数组?

标签 c arrays string pointers

我想在 C 中定义不同的字符串数组,然后可以是根据其他一些值选择,即如下所示:

char foo[][10] = {"Snakes", "on", "a", "Plane"};
char bar[][10] = {"Fishes", "in", "a", "Lake"};
char *choice;
if (flag == 1) {
  choice = &foo;
} else if (flag == 2) {
  choice = &bar;
} 
printf("%s%s\n", choice[0] , choice[1]); 

flag 为 1 时的预期结果:

flag 为 2 时的预期结果:

钓鱼

但是上面的代码给出了一个segmentation fault错误,而我尝试了对char的不同定义,即char*char **。怎么做才对?在这个问题上是否有很好的教程,即关于指针、数组、上面示例中的 foo 究竟是什么...

最佳答案

如果只使用指针数组会更容易:

int main(void)
{
  const char *foo[] = { "Snakes", "on", "a", "Plane" };
  const char *bar[] = { "Fishes", "in", "a", "Lake" };
  const int flag = 17;
  const char **choice = (flag == 1) ? foo : bar;

  printf("%s %s\n", choice[0], choice[1]);

  return 0;
}

上面的打印

Fishes in

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

相关文章:

swift - 在 Swift 中测试字符串中的双引号字符

string - 如何在 Haskell 中制作开始/结束索引列表?

python - 如何在 python 中递增数字字符串 '0000000001'?

c - dev-c++ 套接字错误

arrays - 如何在 Julia 中连接不同大小的向量?

c - open() 和 open64() 的包装器,看到 vi 的系统调用使用 open64()

javascript - 在 Javascript 中将数组转换为嵌套 JSON?

javascript - 通过唯一属性和数组合并嵌套的对象数组

c - 当接受 PID 作为输入时,是否可以进行任何理智的验证?

c - TicTacToe 打印获胜者