ページ 1 / 1
配列について
Posted: 2007年2月05日(月) 03:53
by たのもー
こんばんは。お久しぶりです。
C言語を勉強していて分からないことが出てきましたので、
質問させていただきます。
char str[20] は文字(全角)が9文字しか打てないのはなぜですか?
char str[20] は、char str1~str20 までの個数をまとめたものではないのですか?
Re:配列について
Posted: 2007年2月05日(月) 04:13
by 大工
ASCIIはアメリカの標準の文字コードです。
ですから、日本語の場合ASCIIコードに日本語コードは含まれていなくて、日本語の漢字はchar型の1バイトでは表現できず2バイト以上を使用しています。なのでchar[20]では9文字(くらい)までなんではないでしょうか?
(このような文字をマルチバイト文字といいます。)
Re:配列について
Posted: 2007年2月05日(月) 09:32
by box
> char str[20] は文字(全角)が9文字しか打てないのはなぜですか?
str[0]~str[19](str[1]~str[20]じゃないですよ)の20バイトを
定義したとき、実際の文字列として有効なのは最大19バイトで、
文字列の最後には終端を示す'\0'が入ります。
最大19バイトの中には、2バイト文字は最大9文字入ります。
Re:配列について
Posted: 2007年2月05日(月) 12:20
by むつ
バイナリエディタというものを触ってみてはいかがでしょう。
文字コードShift_JISでは、「あ」を「82 A0」で表す事がわかると思います。