C言語で文字列を画面に表示するやり方とは…?
C言語のルールは分かったんだけど、次は何をしたらいいの…?
前回の記事でC言語のルールを身に付けることができました!

これらのルールを知っていただければ、プログラムを書き始めて大丈夫です。
ただ、プログラムにも難易度があるので、まずは簡単なプログラムから学んでいくことをオススメしています。
本サイトでは『文字列を画面に表示するプログラム』を最初に学ぶことをオススメしています。
理由は単純で、プログラムが正しく動いているかを確認するには、画面に何かしらの情報を表示させる必要があるからです。
本記事では、画面表示の基礎となる『文字列を表示する方法』をご紹介いたしますので、ぜひ参考にしてみてください。
気になるところへGO!
画面に文字列を表示するプログラム

分かりやすくするために、本記事では2つのプログラムを見比べながら説明します。
その2つのプログラムとは次の通りです。
- 何もしないプログラム
- 『ヤバイよ!ヤバイよ!』を表示するプログラム
/* 何もしないプログラム */
int main(void){
return 0;
}
続いて、画面に『ヤバイよ!ヤバイよ!』を表示するプログラムがこちらになります。
/* 『ヤバイよ!ヤバイよ!』を表示するプログラム */
#include<stdio.h>
int main(void){
printf("ヤバイよ!ヤバイよ!\n");
return 0;
}
2つのプログラムの違いは何でしょうか…?
printf関数の使い方

printf関数とは画面に文字などを表示させる標準関数です。
C言語における標準関数とは『よく使う機能を一行で実現するコード』になります。
本来、画面に表示させるためにはたくさんのプログラムを書く必要があるのですが、表示するたびに大量のプログラムを書くのは大変ですよね?
そのような手間を省くために準備されたショートカット機能が標準関数なのです。
printfで文字列を表示させるコードの書き方は次のとおりです。
printf(“文字列”);
printfの後のカッコの中には、好きな文字列を入力することができます。
もちろん日本語でもOKです。
しかし、文字列の範囲を意味する『”』で文字列をはさむ必要があるので、忘れないようにしましょう。
この表記方法を知っておけば、画面に文字列を表示させるプログラムを作ることができますよ。
printf関数を書く場所

では、printf関数を書く場所を確認するために、『ヤバイよ!ヤバイよ!』を表示するプログラムをもう一度見てみましょう。
/* 『ヤバイよ!ヤバイよ!』を表示するプログラム */
#include<stdio.h>
int main(void){
printf("ヤバイよ!ヤバイよ!\n");
return 0;
}
printf関数を書く場所はこのプログラムの通りの場所になります。
では、一体なぜprintf関数を書く場所が決まっているのでしょうか?
その理由は『C言語のおまじない』を考慮する必要があるからです。
先ほどのプログラムの中でC言語のおまじないに該当するのは『#include <stdio.h>』・『int main(void)』・『return 0;』の3つでしたね。
この中で特に重要なのは『main』と『return』になります。
お察しの通り、画面に文字を表示させたいときはprintf関数を実行する必要があります。
つまり、printf関数を発動させるためには、実行される関数の処理を書く場所である{}の中に書く必要があるのです。
その中でも間違いなく実行されるのは『一番最初に実行されるmain関数』でしたよね。
先ほどのプログラム例では、main関数しか存在しないので、main関数の{}の中に書けばOKです。
続いてもう一つのおまじないの『return』の意味を復習しましょう。
returnは『関数を終了させて値を返す』という機能を持っていましたよね。
そのため、『return』の後にprintfなどの処理を行うコードを書いても、関数が終了しているため実行されないのです。
言い換えれば、関数を終了させる機能を持つ『return 0;』が発動する前に『printf』を書いておく必要があると言えます。
以上のことを考えると、printf関数を書く場所は次のような場所に限定されるのです。
『int main (void){』
~
『return 0;』

文字列の体裁を整える方法

基本的な文字列の表示はご紹介したprintf関数を使えば大丈夫です。
でも、wordなどで文章を書いたときに、改行や文字の位置調整をしたくなった時ってありますよね…?
もちろん、プログラムも同様です。
表示する文字が分かりにくければ、ソフトウェアの使い勝手が悪くなりますし、デバッグもしづらくなります。
なので、プログラムでも改行や文字の位置を揃える必要があるんです。
改行や文字の位置を揃える場合には、文字列の中にエスケープシーケンスというもの使います。
エスケープシーケンスとは『\』と『文字』、もしくは『\』と『文字』を組み合わせたものです。
このエスケープシーケンスを使うことで、表示させる文字の体裁を整えることができます。
プログラミングを行う環境によっては『\』が使えない場合があります。
その場合は『\』がエスケープシーケンスになるので、気を付けてください。
(ちなみに本サイトのプログラム例も『\』になっています。)
①文字列を改行する方法
文字列を改行するためには、改行したい文字列の場所で『\n』を書けばOKです。
具体的には次の画像のようなイメージになります。

①は文字列の最後に\nを記載したケースです。
この場合は文字列はそのまま表示されますが、次に文字列を表示するときは改行して表示されます。
この①の方法がprintfのスタンダードな使い方なのです。
②③は『\n』を使わずにprintf関数を使用しているケースです。
この場合、たとえ2つのprintf関数を使っても、改行せずに同じ行に表示されます。
もちろん、次に表示する文字列も改行はされません。
④は文字列の途中に『\n』があるケースです。
この場合、たとえ文字列の途中であっても『\n』を書いた場所で強制的に改行されます。
表示する文字列が長いから改行したいときに使われるイメージです。
②文字列の先頭をそろえる方法
名簿などの類似情報をまとめるときって、区切りの位置をそろえたくなりますよね。
このような状況を実現するために使うのが『\t』になります。
文字列に『\t』を書いておけば、タブの位置で間隔を調整してくれるのです。

①は『\t』を使わずにprintf関数を使用した例です。
名前の文字数が異なるため、性別がずれて表示されていることが分かります。
一方、②は名前の後に『\t』を入れたケースです。
この場合、名前の後にタブによる位置調整が行われているので、性別の位置が揃っています。
つまり、名前に文字数のバラツキがあっても、きれいに表示されるのです。
エスケープシーケンス一覧
エスケープシーケンスは『\n』と『\t』だけではありません。
次のリストのように、結構たくさんあるんです。
- \a:アラート(音)を鳴らす
- \b:カーソルを1文字前に戻す
- \f :プリンタの紙の排出
- \n:カーソルを次の行に移動する(改行)
- \r:カーソルを今の行の先頭に移動する
- \t:カーソルを次のタブに移動する
- \数字:8進数の文字コードを表示
- \x数字:16進数の文字コードを表示
- \\・\?・\’・\”:2文字目を表示する
基本的に使用するのは④⑥⑨くらいだと思います。
④⑥は先ほど説明した通りです。
⑨は『\?'”』を文字として使いたい場合に使用する方法です。
というのも『\?'”』は特殊な記号という位置づけなので、単体では使えないんですよ。
これは文字ですよと伝えるために\を『\?'”』の前に『\』を付ける必要があるのです。
また、②⑤を使う際には注意が必要です。
表示した文字列の前にカーソルが移動するので、表示している文字が上書きされてしまうことがあります。
その場合は、表示させたい結果が得られないことがあるので、気を付けてください。
まとめ
以上が文字列を画面に表示させる方法です。
一言で言えば、プログラムの先頭に『#include <stdio.h>』を書いて、『printf』を使えば表示させることができます。
この方法を使って、まずは簡単な文章を表示させるプログラムを作ってみてくださいね!

文字列の表示をマスターしたら、次は数値を表示の学習がオススメです。
