初めまして、airblasterと申します。]に整数表記(負の場合もある)が入っているとする。」なんですがまったくわかりません。お話でこのような事を聞くのは、少々抵抗があるとは思いますが聞いてください。このことはどこに言ってもいえる事ですが質問する時に「全く判りません」とだけ書くのは良くないです。「この辺りまで勉強しています。授業でこの辺までやりました。自分ではこの辺まで理解しています。自分ではこの辺まで調べました。」など、という表記が大事です。これではとりあえず宿題を誰かに解かせたいだけに聞こえてしまいます。いう投稿はどこのサイトで質問しても、親身になってくれる回答には出会えないことが多いです。質問の仕方一つで、どういう回答に出会えるか、密接に関係しています。一生懸命さが伝わる質問なら回答する側も一生懸命になってくれます。これは私が実際に体験したことでもあり、あらゆるサイトで見かけることなので、今後airblasterさんが損をしないように、言いました。気を悪くされたらごめんなさいね。質問の回答ですが、atoi関数というのは、文字型で取り込んだデータを整数型で返す関数です。atoiを表記せよということですが、それは、atoiのアルゴリズムを示せということでしょうか?実際の関数の処理の中身を書けばいいんでしょうか?まず、それには文字コードの理解が必要です。全ての文字は文字コードで管理されています。データは0と1で管理されますから、「文字」というデータがあってはこまります。数字で管理されているのです。「a」という文字は文字コード79で管理されています。79というデータを「文字型で表示」すると「a」が表示されます。(環境によって変化しますが)これを実際に実行してみてください。main(){printf("%c",79);}79という文字コードデータを文字型表示である%cで表示するとaになります。実際に実行して確かめてください。これを80にするとbに、81にするとcになります。文字コードはこのように順番に並んでるんですね。str[/url]="0";printf("%cの文字コードは%d",str[0],str[0]);}こちらを実行してみてください。文字コードは48であることがわかります。main(){printf("%cの文字コードは%d",'0','0');}こちらでも同じ意味になります。数字をシングルコーテーションでかこむと、文字コードをあらわせます。1の文字コードは49、2の文字コードは50で管理されています。このように0~9まで順番の文字コードになっています。文字型データの文字コードが「48~57」だったら文字「0~9」だということが判ります。それをふまえてこちらを見てください。str[/url]="1";n=a2i(str);printf("%d",n);}str[0]から'0'をひくというのはどういう意味なんでしょか?str[0]は文字「1」であり、文字コード49でしたね。'0'は文字コード48でしたね。数字の文字コードから'0'を引けば、int型の数字に変換することが出来ます。str[0]が文字「3」であるとき、文字コード51です。'0'は文字コード48ですからひけば「3」ですね。'0'を引くことで、文字型データを整数型データに変換することが出来るんです。それが先ほどのプログラムです。str[/url]="12";n=a2i(str);printf("%d",n);}str[0]に1が、str[1]に2が入っていますね。10の位である1を整数型に変換してnに代入します。この時点では一桁ですから、これを10の位にするために10倍します。1の位であるstr[1]を整数型にしてたしてやることで、2桁の数字が表示できます。a2i(str));}これが全ての桁数で対応できるようにしたプログラムです。for文の条件が複雑に見えますが、簡単ですから落ち着いてみてください。i++)これは、「iが0から始まって文字データが0から9までの間繰り返す。文字データが数字ではなかったり、数字のデータが終わったりすると終了するループ文です。このループが終わるまで、先ほど言った容量で、位上げをしながら計算をしています。このa2i関数がatoi関数の中身です。toというのはtwoと発音が似ていることからa2iと書いて表現することが多いです。atoi関数のアルゴリズム、お分かりになったでしょうか?わからなかったらまた聞いてください。回答ありがとうございますm(__)m管理人様が指摘したことに返す言葉もありません。確かに自分の質問の仕方では、そのように捉えられるし、回答してくださる人の立場に立った場合、回答したいとは思わないと思います。自分的にも、あまりにも軽い気持ちで書き込んでしまったと思い、反省しています。そんな質問にも関わらず、丁寧に回答してくれた管理人様には感謝しています。質問させてもらうと思いますが、そのときは今回のようにはならないようにしたいと思います。回答ですが、非常に良くわかりました!本当にありがとうございます。最初、整数表記を整数に変換するという意味がよくわかりませんでした。これは言い換えれば整数で書かれた文字コードを整数型になおして表示するということだったのですね。13年前airblasterさん、お解かりいただけたようでよかったです。プログラムの説明っていうのは聞いただけじゃよくわかりません。私が先ほどaやbの文字コードの説明をしましたが、それをうけて、自分でdやCの文字コードを表示させてみることでもっとよくわかります。自分で類題を作ってみて、ちょっと違ったプログラムを自分の判る範囲で、作ってみるのも大事です。「5~8のみint型に変換するにはどうしたらいいか?」など、疑問がわけば、自分でそれが実現できるプログラムを作ってみましょう。疑問があれば、残したままでは駄目です。宿題だけやっていたのでは最低限の知識どころか、復習しなければしばらくすれば0に近い状態に戻ってしまうでしょう。ミクプラは自由にリンクできます。