問題CPP00402の解答例と解説 C++ Lv.2
文字列の長さ(char*)(30分)
<解答例 1>
ポインタを扱う場合は、4行目のようにNULLかどうかのチェックはしておこう。NULLになんてなるはずがないよ、というところでもなることはあるかもしれないからね。
この問題の大事なところの1つは11行目と23行目で、ポインタから値を取ってきているところだよ。ポインタに * をつけると、その先の値が取って来れるんだ。
そしてもう1つ大事なところは20行目で、ポインタは整数を足し算するとその先のポインタを取得できるんだ。
あと、20行目の pCurr という変数のつけ方は、p は pointer(ポインタ)の p で、Curr は current(現在)からとってきているよ。これで、"現在指しているポインタ"という意味にしているよ。
この問題の大事なところの1つは11行目と23行目で、ポインタから値を取ってきているところだよ。ポインタに * をつけると、その先の値が取って来れるんだ。
そしてもう1つ大事なところは20行目で、ポインタは整数を足し算するとその先のポインタを取得できるんだ。

あと、20行目の pCurr という変数のつけ方は、p は pointer(ポインタ)の p で、Curr は current(現在)からとってきているよ。これで、"現在指しているポインタ"という意味にしているよ。
<解答例 2>
解答例1をもっとシンプルにすると、こうなるよ。慣れてくると、こっちの方が行数が短いからわかりやすくなるけど、最初は解答例1のような書き方でも十分だよ。
11行目は、ポインタをインクリメントして、すぐ隣のポインタを取得しているよ。
14行目では、ポインタ同士の引き算をしているけど、これでcharが何個分離れているのかがわかるんだ。
11行目は、ポインタをインクリメントして、すぐ隣のポインタを取得しているよ。
14行目では、ポインタ同士の引き算をしているけど、これでcharが何個分離れているのかがわかるんだ。
初めての方へ:このページは、このサイトで用意しているプログラミング問題の解答と解説のページです。このサイトではブラウザ上からプログラミングができます。会員登録(無料)して、プログラミングしてみませんか?
新規登録
新規登録