パソコン活用研究シリコンバレー(C、C++、の活用研究)

文字型(Char)のおさらい

------------------------------------summery-----------------------------------------------------
scanf in C program is a hotbed of bugs. Reading strings into arrays, you should be careful.
When you use "scanf", please note that whitespace is recognized as a delimiter and
newline characters remain in the buffer. 
C言語には文字型はありますが、文字列型はありません。C言語における文字列の取り扱い
について整理してみます。
-------------------------------------------------------------------------------------------------

C言語の文字列の取り扱いはちょっと他のプログラム言語と違うので、他のプログラム言語
を使っていた人がC言語でプログラミングする場合にバグの温床になりやすいところかも
しれません。

1 文字型(Char)
C言語で文字を扱うために文字型(Char型)があります。
Char型は1バイトであり、アスキー文字を1文字だけ保存できます。
Char型変数に1文字を代入する場合、その文字はシングルクォーテーション ' でくくります。
他の言語に慣れたプログラマーはうっかりダブルクォーテーション " でくくってしまうかもと
いうところなので注意が必要な点です。

char.c

#include <stdio.h>

int main(void) {
char c;
c='a';
printf("%c\n",c);
printf("%d\n",c);
/* printf("%s\n",c); これはエラーになる */
return 0; }

このプログラムはchar型変数cに1文字'a'を代入し、1つめのprintf文でそれを表示しています。
char型は文字を表す型ですが、内部的には1バイトの符号付き整数(-128〜127)です。
2つめのprintf文ではchar型変数cを整数として表示させています。
実行させると以下の通り

c:\bcc55>char2
a
97





c:\bcc55>char2
a
97
a
97,0
a
97,0
c:\bcc55>


TopPage