質問: (int)p; return dec; } ```
回答: こんにちは。 `fgets(pre, sizeof(pre), stdin);`は、入力された文字列を最大preのバイト数(32バイト)まで読み取ります。 例えば、abc[Enter]と入力すると、preには下記のように入ります。 pre[0]='a'; pre[1]='b'; pre[2]='c'; pre[3]='\n'; pre[4]=0; これ以降は不定値。 この状態で`for(i=0; i<=sizeof(pre); i++)`にてループを回すと33回ループを周りますね。 i=5以降については不定値を処理しますので、わけの分からない値が出力されます。 更に、preの要素数は32個ですから、pre[0]~pre[31]までしか存在しません。i=32の時は不正な位置をアクセスしています。 ループの終了判定の工夫が必要です。`'\n'`と一致した場合もループを抜けると良いです。 例えば`for(i=0; (i