電子書籍の厳選無料作品が豊富!

C言語でかなり長い文字列を扱いたいのですが、
「初期化子が多すぎる」というエラーが出るばかりで途方に暮れています。

今現在、下記のようなソースで、「", 7時,,,, 8時,,,, 9時,,,,10時,,,,11時,,,,12時」という文字列を表示したいのですが…。
何かとっかかりになることでもいいので、教えてください。
よろしくお願いします。


#include <stdio.h>
void main (){
int i;
char rowitem[46] = ", 7時,,,, 8時,,,, 9時,,,,10時,,,,11時,,,,12時";
for (i=0;i<46;i++){
printf("%s", rowitem[i]);
}
}

A 回答 (2件)

上記ソースをコピーしたら文字列部分が46バイトありました。


とすると、最後にEOS( '\0')が付くので配列は
[46]でなく[47]にする必要があります。

また、rowitem[i] は char型のため、
printf("%s", rowitem[i]);
でなく
printf("%c", rowitem[i]);
(%s→%c)にする必要があります。
    • good
    • 0
この回答へのお礼

無事に処理することができました。
最後に'\0'が付くのですね。完全に失念していました。
本当にありがとうございました。

お礼日時:2009/10/03 04:06

rowitem[45]=0;






どうなった?
    • good
    • 0
この回答へのお礼

コンパイルエラーになってしまいました。
ですが、無事問題は解決することができました。
ありがとうございました。

お礼日時:2009/10/03 04:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!