C言語 入門 getcharの使い方と練習プログラム

START NOWと書かれた文字列C Language
<strong>C言語のgetcharを知りたい人</strong>
C言語のgetcharを知りたい人

C言語のgetcharが難しいな。C言語でのgetcharの使い方を詳しく解説して欲しい…

getcharの解説、始めます。

本記事の内容

・C言語で登場するgetcharとは?

・getcharの使い方

・getcharの練習用プログラム

この記事を書いている自分は、一日中プログラミングしていた過去がありました。現在、そこで学んだC言語について解説中です。

今回は、C言語でのgetcharの使い方を解説していきます。C言語ではputcharと同様、基礎の部分なので、しっかり押さえましょう。

【C言語】getcharとは?

?で書かれたWHAT

getcharとは、1文字ずつ、文字もしくは数字を変数に入力(代入)できる関数です。場合によっては、「scanf」よりも簡単に入力ができます。

もちろん、「scanf」と同様に、出力結果の画面で代入することもできます。

こちらの投稿で「scanf」を紹介しているので参考にして下さい。 

»C言語 入門 「scanf」の使い方!(エラー出た時の対処法も)

getcharの使い方

getcharの使い方は簡単です。

変数=getchar();

とすると変数に代入ができます。

今回の練習では、試しに「moji」という変数に代入をします。

つまり、「moji=getchar();」とすることで代入ができるようになります。

入力された文字数を数えるプログラム(練習問題)

今回は、getcharを使用して入力された文字数を数えるプログラムを作ってみましょう。

もし作り方が分かった人がいたら自分で作ってみてください。ヒントはwhile文を使って、1文字入力されたら1回カウントするように作りましょう。

では解説していきます。まず、使う変数は2つだけです。1つが文字を入力するときに使う変数で、もう一つが入力された回数をカウントする変数です。

最初に変数宣言をします。

そして、カウントする変数に「0」を代入します。

   char mojisuu;
   int i;
   i = 0;

こういう感じです。

次に、whileを使います。while( )のカッコの中に

( 変数名 = getchar() ) ! = ‘¥n’

と入力します。(今回は、変数名の部分に「mojisuu」が入ります。)

難しく見えますがカッコのついているところから見ていきましょう。
変数名 = getchar()の部分です。

すると、変数名に入力された文字を代入しているだけだということが分かります。このように条件式の中でgetcharを使うこともできます。

また、式全体を見ると変数に代入された文字が「¥n」(改行)以外のときこの条件式を続けるようになっていることが分かるかと思います。

そして、1文字入力された後は文字数をカウントする変数にインクリメント(+1)されます。

さらに、getcharで再び文字を入力して…というプログラムがずっと続きます。

どこまで続くかと言うと、改行されるまでです。

最後に、カウントし続けた変数をprintfで出力します。

#include<stdio.h>
int main()
{
   char mojisuu;
   int i;
   i = 0;
   while ((mojisuu=getchar())!='¥n')
   {
      ++i;
   }
   printf("%d", i);
}

こういうプログラミングコードが書けます。「i」が文字数をカウントする変数で、「mojisuu」に文字を入力し続けます。

では、出力していきます。

a~zを入力した結果、「26」と出力されました。このようにwhileと組み合わせることで文字数を数えるプログラムを作ることができます。

C言語でのgetcharの使い方まとめ

水面に落ちる雫

とりあえず今回は、

変数=getchar();

というgetchar関数のフォーマットを覚えて帰って下さい。文字入力をする際に良く使う、とても重要な関数です。

今回紹介したように「1文字だけ入力したい。」、「文字数をカウントしたい!」というときに良く使うのです。

今回説明したgetcharに似た関数などがいくつかあります。

putchar、gets、putsなどです。これらは全て入出力関数と呼ばれますが、詳しいことを知りたい人は下の記事をどうぞ。

»C言語 入門 putcharの使い方と練習プログラム

getsやputsなどの関数を知りたい人はこちら。

»C言語 入門 getsの使い方徹底解説!