- ベストアンサー
C言語 ナル文字の表示
'\0'(ナル文字)を表示させたいのですがどうすればできますか? str[3] = となって何も表示されません。 str[3] = \0 とはならないんでしょうか? ---プログラム---------------------------- //ナル文字の表示 #include <stdio.h> int main(void){ char str[5] = "abc"; printf("str[0] = %c\n", str[0]); printf("str[1] = %c\n", str[1]); printf("str[2] = %c\n", str[2]); printf("str[3] = %c\n", str[3]); printf("str[4] = %c\n", str[4]); return 0; } ---------------------------- ----実行結果----------------- str[0] = a str[1] = b str[2] = c str[3] = str[4] = ------------------------------------
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
>C言語では、バックスラッシュを端末で表示することが出来ないようです。 バックスラッシュはエスケープ文字になってますのでバックスラッシュを出力したいのでしたら putchar('\\'); のように、エスケープを意味する\の後に、\を書いてください。
その他の回答 (3)
- m-take0220
- ベストアンサー率60% (477/782)
"\0"というのは、文字列リテラルとしてNULL文字を設定したい場合に使用するものであって、NULL文字を画面に表示すると"\0"と出てくるわけではありません。TAB文字も、文字列リテラルでは"\t"としますが、画面に"\t"と表示されるわけではありません。 また、printfはNULL文字がくると文字列の終端として処理するため、NULL文字を表示したりはしません。 NULL文字が設定されていることを確認するためには、printfにそのまま渡すのではなく、NULL文字だったら"\\0"を返すような関数を作成するなどの工夫が必要です。
お礼
回答有難うございます。
- maiko0333
- ベストアンサー率19% (839/4401)
ヌルですね。 では"a"はなぜ表示されるのでしょう? 記憶装置には"a"という文字で格納されているわけではありません。 "a"の文字コードが格納されていてそれを"a”という文字に変換して 表示するのです。ヌルは00が格納されていて文字は割り当てられていません。 あと、"abc"とした時、4文字目はNULLですが 5文字目は不定(設定されません)です。
お礼
回答有難うございます。
ならないと思います。
お礼
回答有難うございます。
補足
C言語では、バックスラッシュを端末で表示することが出来ないようです。 putchar('\'); ができませんでした。
お礼
回答有難うございます。