Ⅽ言語についてです #include <stdio.h> int main(void) { int i = 0; char moji[100];
Ⅽ言語についてです #include <stdio.h> int main(void) { int i = 0; char moji[100]; /* 文字列の入力 */ printf("文字列を入力してください = "); scanf("%s", moji); /* ASCIIコードを出力 */ while(moji[i]) printf("%d ",moji[i++]); printf("\n"); return 0; } このコードで文字列を10進数のアスキーコードに変換できるのですが、「sbv rww」のようにスペースが入ってしまうとそれまでの「abv」までしか変換されません。調べたところスペースのアスキーコードは32の様なのですがなぜ出力されないのでしょうか?教えて頂けますと幸いです。
ベストアンサー
scanf()は半角スペースで入力が中断してしまいます。 半角スペースを文字列の中に含めたい場合は scanf("%[^\n]%*c", moji); のように記述します。 (改行以外は文字列に含むという意味)
1人がナイス!しています