检索数组元素时,如何使用变量作为元素编号

时间:2012-05-17 00:39:26

标签: c

我正在研究一些解析日志数据的代码,这部分特别用于将一个月的小数形式转换为人类形式(因此1将是jan),为了实现这一点,我试图使用一个for循环和if语句的组合,并且认为我可以简单地使用变量作为语句的数字来检索数组单元格,但它没有按预期工作,所以如果有人可以就如何提供建议我能做到这一点我真的很感激,谢谢! (这是代码的主要部分)

for ( x = 0; x < 11; x++ ) {
    int altint = 1 + x;
    if ( dmon == altint ) {
            printf( "%s\n", field_month[x] );
            {break;}
    }
}

3 个答案:

答案 0 :(得分:2)

只是printf("%s",field_month[dmon])field_month[dmon-1],因为它取决于您的月份名称数组?

答案 1 :(得分:2)

我想建议您使用for循环,而是直接查找您想要的元素:

printf("%s\n", field_month[dmon]);

如果您的dmon为1个索引({{1>} 1月,...,1 12月),那么稍有改变:

12

答案 2 :(得分:0)

您的for循环可以优化为:

if (dmon >= 1 && dmon <= 12)
{
    printf("%s\n", field_month[dmon]);
}

因为它唯一真正做的就是阻止使用无效的索引来访问你的数组......