1

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

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

3 回答 3

2

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

于 2012-05-17T00:43:58.917 回答
2

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

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

如果您dmon是 1-indexed (1对于January,..,12对于December),那么稍微改变一下:

printf("%s\n", field_month[dmon-1]);
于 2012-05-17T00:44:36.810 回答
0

您的 for 循环可以优化为:

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

因为它真正做的唯一一件事就是防止用于访问数组的无效索引......

于 2012-05-17T00:50:19.067 回答