第9章 演習問題2 ~関数atoiを作ってみる~
問題・関数atoiと同じ機能を持つ、関数a2iを作る。
関数atoiは、文字列を引数にもらい、その整数値を戻り値に返す関数です。 戻り値の返し方は、前の章でやりましたね。 そして、char配列(文字列)を引数にする方法も、前の章にありました。
しかし、それだけでは、まだまだ難しいことでしょう。 関数a2iは、次の説明を良く理解してから、作り始めてください。
実は、一つのchar型変数は、int型の変数やlong型の変数と同じように、比較や四則演算が出来ます。 char型も本来は、整数型の仲間だからです。箱の中には文字が入ってるように思えていたのも、 ただ単に-128から127までの数字のどれかが入っているだけだったのです(注24)。
ただそれを画面に表示する際、出力形式を%cと指定すると、 数字に対応した文字に置き換わってくれていただけなのです。 試しにprintf(“%c”, 97);を実行してみると、よく分かるはずです。 ただの数字の97が、aと表示されたはずです(注25)。
ちなみに、’0’ は48、’1’ は49になります。 ということは、’1’ -‘0’とすると、ただの整数の1が取り出せるということです。
この原理を用いて、文字を整数に代えていって下さい (’2’、’3’、’4’ も、同様に、50、51、52と連続していますので、 ’1’ 以外でも大丈夫です)。
また、本物の関数atoiは、文字列の中に数字以外の文字を見つけたら、それまでの値を返します。
例: ”1234a6789″ → 1234、 ”abcd7777″ → 0
つまり、関数a2iも同様に、0~9以外の文字が出てくるまで処理を続ければいいということです。
ヒントは、ここまでです。それでは、頑張って下さい。
自分なりにできたと思ったら、まず、入念にテストをしてみて下さい。 配属後に、自分で何らかの関数を作ったら、まず、きちんと動くかテストすることが大事です。 テストした上で、正常に動いているならば、講師の人に見てもらって下さい。
最後に、次ページの解答例に目を通して下さい。
< 前のページへ 次のページへ >-
IS 559680 / ISO27001
認証範囲 本社、芝大門オフィス情報セキュリティ基本方針 -
個人情報保護方針
個人情報の取扱いについて
保有個人データ又は
第三者提供記録に関する
事項の周知について
特定個人情報の取扱いについて -
FS 671851 / ISO9001
認証範囲 本社、芝大門オフィス品質方針