データ入力とデータ型
最終更新日:2004-06-22.
今回は、代入演算子、
変数にデータを代入する際の注意点についてちょっと。
・データの入力とデータ型
ある変数に任意の値を代入することで、いろいろな処理が行えます。
値には数値、文字、文字列などがあります。
数値にも正の数、負の数、実数、小数などがあります。
変数に値を代入するときには、データの型に注意しましょう。
ここに、int型の変数seisuuがあるとします。
int seisuu;
この変数に代入できる値は整数です。
小数を代入しても、思い通りの処理が行われません。
整数といっても、どんな数でも良いともいえません。
処理系が16ビットの場合、int型はshort型と同じ大きさを持っています。
それよりも大きな値を処理したい場合には、long型などを使うことに
なります。
では、変数に値を代入してみましょう。
int seisuu;
seisuu = 12345;
上記を見て分かるように、
「左辺値」 = 「右辺値」;
のようにします。
イコール記号(=)を一つ使っていますが、
右辺の値を左辺に代入するという意味をもっています。
上記のイコール記号などを代入演算子といいます。
また、変数を宣言するときに値も代入することができます。
int seisuu = 12345;
次に、文字を代入する。
char moji;
moji = 'A';
文字の代入ではアポストロフィー記号(')を使います。
または、アスキーコード表などにある、直接その文字に対応した数値で
入力することができます。
次に、文字列を代入する。
char mojiretsu[10] = "Japan";
文字列の代入ではダブルコーテーションを使います。
または、一文字づつ代入していきます。
上記のように配列に文字列を代入する場合、
mojiretsu = "Japan";
では、思い通りの処理が行われません。
文字型配列に文字列を代入する方法として strcpy() 関数などがあります。
strcpy(mojiretsu, "Japan";
このstrcpy()関数では、文字型配列mojiretsuに"Japan"を
順に代入していきます。
上記を見ると、値を代入するときにはイコール記号を一つ使うことが
分かると思います。
他に、処理の中では、それが等しいか、等しくないかといった
条件判断のときにもイコール記号を使うことがあります。
では、ソースにしてみましょう。
+------------------------------------------------------------+
/* filename=no016-1.c */
/* include */
#include <stdio.h>
/* 関数プロトタイプ宣言 */
char *my_strcpy(char *s, char *t);
/* main */
int main( ){
int i;
char c;
char word[10];
i=12345;
c='A';
my_strcpy(word, "JAPAN");
printf("i=%d\n", i);
printf("c=%c\n", c);
printf("word=%s\n", word);
return 0;/* 終了 */
}
/* 文字列のコピー */
char *my_strcpy(char *s, char *t)
{
int len=0;
while( 1 ){
(*(s+len))=(*(t+len));
if( (*(s+len))=='\0' )
break;
len++;
}
return s;
}
+------------------------------------------------------------+
上記のソースをコンパイルして実行すると以下のように表示されました。
i=12345
c=A
word=JAPAN
戻る