配列を使って文字列を反転にしたいのですが、string.hを使わずに実行したいのですが、forの部分がどうすればいいのかわかりません。
手伝ってください。
配列で文字を反転
Re: 配列で文字を反転
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。
Re: 配列で文字を反転
momon さんが書きました:t = a[j], a[j] = a, a = t;
の部分はどのような意味なんですか?
j番目の文字と(i - 1 - j)番目の文字とを入れ替えています。
例えば、
aの中身が"abcd"であるとします。1個目のfor文で、長さを求めています。文字列の長さであるiという変数には4が入っています。
そして、
0番目('a')と3番目('d')とを入れ替えます。この時点で、aの中身は"dbca"になっています。次に
1番目('b')と2番目('c')とを入れ替えます。この時点で、aの中身は"dcba"になっています。入れ替えはこれでおしまい。
この場合、m番目とn番目を入れ替える、というときのm + nの値がiより必ず1小さいことに注意してください。
別の例
aの中身が"stuvw"であるとします。1個目のfor文で、長さを求めています。文字列の長さであるiという変数には5が入っています。
そして、
0番目('s')と4番目('w')とを入れ替えます。この時点で、aの中身は"wtuvs"になっています。次に
1番目('t')と3番目('v')とを入れ替えます。この時点で、aの中身は"wvuts"になっています。入れ替えはこれでおしまい。
この場合も、m番目とn番目を入れ替える、というときのm + nの値がiより必ず1小さいことに注意してください。
バグのないプログラムはない。
プログラムは思ったとおりには動かない。書いたとおりに動く。
プログラムは思ったとおりには動かない。書いたとおりに動く。