- ベストアンサー
C言語の文字列で
基本的なことですがよろしくお願いします。 文字列の配列を作る時 文字を個々に配列にする場合配列の大きさを\0を合わせた5にすると思います str[5] = {'a','b','c','d','\0'} 疑問に思ったのは文字列で初期化する場合は\0はコンパイル時に自動で付加と説明を受けましたが、初期化時には配列の大きさは文字列の長さだけで良いのでしょうか? str[4] = "abcd" 解らなければ多く取ればいいよと言われればそれまでですが、for文で回転させる時は'\0'はどうなっちゃうんでしょうか
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
str[4] = "abcd" は間違い。 str[5] = "abcd" ですね。 もちろん、\0が入るから配列が5ついるわけです。 単に、 str[4] = {'a','b','c','d'} と文字を入れるだけなら\0は関係ありません。 str[5] = {'a','b','\0','d','\0'} だとstr='ab' になります。 文字の配列なら\0は関係ありません。 文字列として見るなら文字列の長さは\0までと決まっていて 文字配列の大きさではありません。
お礼
ありがとうございました