<戻る  目次  進む>  
          <戻 進> 雑誌 白黒 明暗   フォント 既定 ゴシック 明朝 手書き   サイズ   標準  


   数値の表示   

  1. 第1項:文字列と数値
  2. 第2項:数値を表示する
  3. 第3項:文字列との組み合わせ表示
  4. 第4項:複数の数値の表示

[1]文字列と数値

前章では、画面に文字列を表示する方法を説明しました。
しかし、画面に文字列しか表示出来ないのでは、困ることがあります。

コンピュータは、計算を行う機械です。
しかし、文字列は、あくまでも文字列に過ぎませんから、計算に使うことは出来ません。
計算を行う場合には、数値として扱わなければなりません。
数値であれば、当然、計算に利用することが出来ます。


[  数値と数字  ]
日常生活では数値も数字も同じ意味の言葉かもしれませんが、
コンピュータの世界では明確に区別されています。
数値は数を表現するもので、計算に使うことが出来ます。
数字は(人間の都合上)数値と同じ見た目であるに過ぎず、
コンピュータにとって数を表現するものではなく、計算に使えません。
C言語では、文字列と数値は、書き方によってはっきり区別されています。
C言語において、文字列とは、"" で囲まれた間のことを意味しています。
逆に言えば、"" で囲まれていれば、全てが文字列となります。

前章で作成したプログラムを思い出してみて下さい。


#include <stdio.h>

int main(void)
{
	printf("Hello, world\n");
	return 0;
}
printf関数は、文字列を表示する関数でした。
従って、printf関数には文字列を渡さなくてはなりません。
だからこそ、Hello, world\n を、"" で囲んでいたのです。

この様に、"" で囲まれた文字列を、特に文字列リテラルと呼ぶことがあります。


[  文字列リテラル  ]
プログラム中に埋め込まれている、"" で囲まれた文字定数。
C言語では、数値を書く場合、特別な書き方を使う必要はありません。
ただ、数字を並べて書けば、それは数値として扱われるのです。
しかし、数字を並べた場合でも、"" で囲んだ場合には文字列として扱われます。
つまり、次の例のように扱われるのです。
1234 は数値
"1234" は数字(文字列)
繰り返しますが、計算に使うことが出来るのは、数値だけです。
数字は、計算に使うことが出来ません。

目次に戻る


[2]数値を表示する

printf関数は、あくまでも文字列を表示する関数です。
しかし、ありがたいことに、数値を表示する機能も持ち合わせています。

printf関数で数値を表示するには、出力変換指定子を使用します。
これは、文字列の中に埋め込んで使われる、記号の一種です。


[  出力変換指定子  ]
外部のデータを文字列に変換して表示したい時に、
その変換方法を指定する記号。
出力変換指定子には色々な種類がありますが、最も良く使われるのは、
整数値を文字列に変換する、%d 指定子です。
この指定子の部分には、後ろで指定した数値を数字に変換した結果が表示されます。

とにかく、百聞は一見にしかずですから、使い方を見てみます。
次のプログラムは、数値 100 を表示するプログラムです。


#include <stdio.h>

int main(void)
{
	printf("%d",100);
	return 0;
}
このプログラムの実行結果は、次の通りになります。

100
ここでは、printf関数に渡す文字列の中で、%dが指定されているので、
%dの部分が、後で指定されている 100 の数値に置き換えられて表示されたのです。

目次に戻る


[3]文字列との組み合わせ表示

前項で、printf関数に%d指定子を使って数値を表示する方法を説明しました。
しかし、数値だけでは、一体何のことを意味しているのかがわかりにくくなります。
一口に 100 と言っても、100円、100人、100Kg、100回、など、様々です。

この問題を解決するには、数値と文字列を組み合わせて表示すれば解決します。
次のプログラムは、数値と文字列を組み合わせて100円を表示する例です。


#include <stdio.h>

int main(void)
{
	printf("%d",100);
	printf("円\n");
	return 0;
}

[  日本語の扱い  ]
C言語は、半角文字だけでなく、全角文字も表示できます。
ただし、半角文字を基本としているため、
全角文字を本格的に使用するとやっかいな点が多々あります。
表示するだけならば問題はありません。
(海外製のコンパイラでは問題が起こることがあります。)
このプログラムの実行結果は、次の通りになります。

100円
この方法で一見問題がないようにも見えますが、良く考えてみると、
1行表示するために、printf関数をわざわざ2回に分けて使っています。
1行表示するのに、printf関数を1回で済ませた方が簡単になります。

%d指定子は、他の文字列と組み合わせて使うことが出来ます。
文字列の中に%d指定子を使うと、その部分が数値に置き換えられるのです。
次のプログラムは、printf関数1回で100円を表示する例です。


#include <stdio.h>

int main(void)
{
	printf("%d円\n",100);
	return 0;
}
このプログラムの実行結果は、次の通りになります。

100円
この様に、%d指定子は、文字列の中に自由に埋め込んで使うことが出来ます。

目次に戻る


[4]複数の数値の表示

前項では、%d指定子を文字列の中に埋め込む方法を説明しました。
この方法を使って、簡単な数式を表示することに挑戦してみましょう。
数式は 100+200=300 と言う非常に簡単な式です。
もちろん、数値を使って表示させますが、まだ計算は行いません

%d指定子を使えば、こんなことは屁でもありません。
次のプログラムは、100+200=300 を表示する例です。


#include <stdio.h>

int main(void)
{
	printf("%d+",100);
	printf("%d=",200);
	printf("%d\n",300);
	return 0;
}
このプログラムの実行結果は、次の通りになります。

100+200=300
この方法で一見問題がないようにも見えますが、良く考えてみると、
1行表示するために、printf関数をわざわざ3回に分けて使っています。
1行表示するのに、printf関数を1回で済ませた方が簡単になります。

実は、%d指定子は、1つの文字列の中で何回使っても問題ありません。
%d指定子を3つ使った場合、数値も3つ指定することになります。
次のプログラムは、%d指定子を3つ使って表示する例です。


#include <stdio.h>

int main(void)
{
	printf("%d+%d=%d\n",100,200,300);
	return 0;
}
このプログラムの実行結果は、次の通りになります。

100+200=300
このプログラムでは、%d指定子は前から順番に、後の数値に1対1で対応しています。

目次に戻る


<−前に戻る  先頭に戻る  次へ進む−>