配列について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
たのもー

配列について

#1

投稿記事 by たのもー » 18年前

こんばんは。お久しぶりです。
C言語を勉強していて分からないことが出てきましたので、
質問させていただきます。
char str[20] は文字(全角)が9文字しか打てないのはなぜですか?
char str[20] は、char str1~str20 までの個数をまとめたものではないのですか?

大工

Re:配列について

#2

投稿記事 by 大工 » 18年前

ASCIIはアメリカの標準の文字コードです。

ですから、日本語の場合ASCIIコードに日本語コードは含まれていなくて、日本語の漢字はchar型の1バイトでは表現できず2バイト以上を使用しています。なのでchar[20]では9文字(くらい)までなんではないでしょうか?

(このような文字をマルチバイト文字といいます。)

box

Re:配列について

#3

投稿記事 by box » 18年前

> char str[20] は文字(全角)が9文字しか打てないのはなぜですか?

str[0]~str[19](str[1]~str[20]じゃないですよ)の20バイトを
定義したとき、実際の文字列として有効なのは最大19バイトで、
文字列の最後には終端を示す'\0'が入ります。
最大19バイトの中には、2バイト文字は最大9文字入ります。

むつ

Re:配列について

#4

投稿記事 by むつ » 18年前

バイナリエディタというものを触ってみてはいかがでしょう。
文字コードShift_JISでは、「あ」を「82 A0」で表す事がわかると思います。

閉鎖

“C言語何でも質問掲示板” へ戻る