C Style constants
C Style constantsが、先ほど終了した。
C は、scanf() の "%i" か。scanf() の man すら調べもしなかった。
〜〜〜
この問題で面白かったのは、inaniwa さんの解答だな。引用すると:
main(s){for(;gets(&s,0.);)printf("%d\n",strtol());}
ベースとなっているのは、
main(s){for(;gets(&s);)printf("%d\n",strtol(&s,0,0));}
これは、↓以下のようにすると、
main(s){for(;gets(&s,0,0);)printf("%d\n",strtol());}
strtol() の引数を省略できる。
さらに、0 (int) の引数2つは、0. (double) の引数1つと同じになるのか。因みに、int引数2個==double引数1個なので、以下も正解だ。
main(s){for(;gets(&s);)printf("%d\n",strtol(&s,0.));}
それから、↓これもあり。短くないけど。
main(s){for(;gets(&s);)printf("%d\n",strtol(&s,0LL));}
〜〜〜
このような gets() から strtol() への流れは、定石となりそうだな。もちろん、他の関数のケースも含めて。ちょっと前に、gets()->atoi() というのもあったし。
ところで、リテラル、0. は、float ではなく、double なのか。C では、浮動小数点は、double で計算されるんだっけ。確かそうだった気もする。忘れてしまった。