みんなの「教えて(疑問・質問)」にみんなで「答える」Q&Aコミュニティ

こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

C言語の文字列で

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

str[4] = "abcd"

解らなければ多く取ればいいよと言われればそれまでですが、for文で回転させる時は'\0'はどうなっちゃうんでしょうか

投稿日時 - 2018-02-22 10:34:22

QNo.9431512

困ってます

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

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までと決まっていて
文字配列の大きさではありません。

投稿日時 - 2018-02-22 10:59:44

お礼

ありがとうございました

投稿日時 - 2018-02-22 11:36:10

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問