• ベストアンサー

C言語の文字列で

基本的なことですがよろしくお願いします。 文字列の配列を作る時 文字を個々に配列にする場合配列の大きさを\0を合わせた5にすると思います str[5] = {'a','b','c','d','\0'} 疑問に思ったのは文字列で初期化する場合は\0はコンパイル時に自動で付加と説明を受けましたが、初期化時には配列の大きさは文字列の長さだけで良いのでしょうか? str[4] = "abcd" 解らなければ多く取ればいいよと言われればそれまでですが、for文で回転させる時は'\0'はどうなっちゃうんでしょうか

質問者が選んだベストアンサー

  • ベストアンサー
  • maiko0333
  • ベストアンサー率19% (839/4401)
回答No.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までと決まっていて 文字配列の大きさではありません。

ashitanotenki11
質問者

お礼

ありがとうございました

関連するQ&A