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 の場合 ( 1Januaryの場合、..、12December場合)、わずかな変更:

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

Your for loop can be optmized to:

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

Because the only thing it's really doing is preventing an invalid index of being used to access your array...

于 2012-05-17T00:50:19.067 に答える