【问题标题】:How can I print out string records stored in a two-dimensional array?如何打印出存储在二维数组中的字符串记录?
【发布时间】:2010-10-02 04:28:10
【问题描述】:

我正在使用 C 进行一个项目。我将几条记录存储在一个二维字符串数组中,其中一个字符串是记录名称,另一个字符串是实际值。例如:

myArray[0][0] = "filename1";
myArray[0][1] = "somefile.txt";
myArray[1][0] = "filename2";
myArray[1][1] = "anotherfile.txt";
// and so on ...

我知道如何将值存储在数组中,但我不确定如何将它们打印出来。你能帮我弄清楚吗?

【问题讨论】:

  • 看看你能不能把问题说得更清楚一点——这是脱节的英语,很难理解。
  • 请先学点英文,尽快回复不太合适也不好。请先澄清您的问题。
  • Karthikeyan:我根据您的意思重新编写了您的问题。请检查并确保它是正确的。

标签: c arrays string


【解决方案1】:

尝试使用二维数组字符(即一维字符串数组)

your_2d_array[0] = "file_name_1" /* and so on ... */


for( i = 0 ; i < num_of_file_names ; i++ )
{
    printf("%s\n", your_2d_array[i]);
}

如果您正在使用 2d 字符串数组(即 3d 字符数组),因为编辑似乎表明了,那么只需执行以下操作

for( i = 0; i < num_of_file_names ; i++ )
{
    printf("%s : %s \n", your_2d_array[i][0], your_2d_array[i][1] );
}

【讨论】:

  • 嗯,这是一个一维数组的开始,但我不打算修改你,因为我不明白这个问题。
  • 字符的二维数组是 c 字符串的一维数组,所以我认为这可行。
  • @Pax 我认为提问者的意思是一个二维字符数组,从问题的初始版本开始,不清楚二维数组的含义。我根据 eJames 的编辑添加了一个替代答案
  • 没有问题,对数组索引进行了小幅修复,然后+1,很好的答案。
  • @hhafez:我什至没有考虑过 char * 的一维数组可以解释为 char 类型的二维数组这一事实。我也 +1。
【解决方案2】:

我会选择以下内容:

int recordIndex;
for (recordIndex = 0; recordIndex < num_records; recordIndex++)
{
    printf("%s: %s\n", myArray[recordIndex][0], myArray[recordIndex][1]);
}

输出如下:

filename1: somefile.txt
filename2: anotherfile.txt
...

【讨论】:

    猜你喜欢
    • 2013-08-07
    • 2011-01-24
    • 2016-02-15
    • 2019-08-10
    • 1970-01-01
    • 2012-06-27
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多