c - 从二维字符数组打印字符串

标签 c arrays string char printf

我环顾四周并尝试了不同的语法,但我似乎无法让它工作。我知道这是基础知识,但不应该花太长时间才能弄清楚。

我有字符数组...

char *roster[2][14] = {
      {"13", "10", "24", "25", "15", "1", "00", "4", "11", "23", "22", "32", "3", "35"},
      {"Isaiah Briscoe", "Jonny David", "EJ Floreal", "Dominique Hawkins", "Isaac Humphries", "Skal Labissiere", "Marcus Lee", "Charles Matthews", "Mychal Mulder", "Jamal Murray", "Alex Poythress", "Dillon Pulliam", "Tyler Ulis", "Derrick Willis"}
    };

然后我从该数组生成一个随机元素...

random = rand() % 14;
printf("What is %s 's number?", roster[2][random]);

然后我尝试打印它,但失败了......

printf("What is %s 's number?", roster[2][random]);

输出

What is (null) 's number?

并且 lldb 显示 printf 语句跳转到...

libsystem_c.dylib`strlen:
->  0x7fff9a596d32 <+18>: pcmpeqb (%rdi), %xmm0
    0x7fff9a596d36 <+22>: pmovmskb %xmm0, %esi
    0x7fff9a596d3a <+26>: andq   $0xf, %rcx
    0x7fff9a596d3e <+30>: orq    $-0x1, %rax

最佳答案

数组索引从0开始。

对于char *roster[2][14];,可能的索引为

roster[0][random];
roster[1][random];

关于c - 从二维字符数组打印字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33696865/

相关文章:

C fprintf/fscanf 优化大文件速度

C++ - 将 RGB 一维数组转换为 OpenCV Mat 图像

c - 在 c 中读取 uart,仅通过声明 char 数组是垃圾

python - 如何遍历 python 数组并将该元素与前一个元素进行比较?

string - Tcl:如果变量为空,则默认?

c# - 如何调试 SqlCommand Parameter.AddWithValue

c - 模拟recvmsg函数时如何返回错误代码?

C中的计算没有遵循

c - 存储用户的数组值并在存储数组的位置打印它(仅使用数组和 for 循环)

r - 在长度超过 n 个字符的单词之间包含空格