C言語 入門 文字数のカウントで使用する変数は2つだけ

文字数のカウンターC言語
C言語で文字数のカウントをしたい人

C言語で文字数のカウンターを作りたいな。初心者でも簡単にできるみたいだけど、どうやってプログラムを作るんだろう🤔

結論から言うと、C言語で文字数のカウンターを作るなら、以下2つの変数で十分ですよ。

✔文字数カウントで必要な変数

・文字の入力用の変数

・カウントする用の変数

今回はその理由を解説しますね。

本記事の内容

・文字数カウンターの作り方

・変数は2つだけで十分な理由

・サンプルコード

サンプルコードは2つほど紹介しますね。

この記事を書いている自分は情報系大学生で、三ヶ月ほどでC言語の基礎を完璧に理解しました。勉強中に分からないことが多く、一日中プログラミングしていたこともあります。

今では、ブログでC言語について解説しています。

今回はそんな経験をもとに解説していこうかと。

当サイトでは、覚えるべきところを全てまとめているので、画面を撮影して何度も読み返すことをおすすめします。

それでは、解説していきます!

C言語での文字数カウンターの作り方

作り方は以下の手順で説明しますね。

・文字数のカウントに必要なもの

・文字数カウントのテンプレ

・サンプルコード

文字数のカウントに必要なもの

文字数カウンターを作る際に、必要なものは以下の5つですね。

✔必要なもの

・while

・if

・getchar関数

・関係演算子

・インクリメント

もちろん変数も必要ですが、分かっていると思うので飛ばしますね。この5つが分かんないよ~って人は、下の記事をご覧ください。

文字数カウントのテンプレ

そして、先ほど紹介した3つを使用したテンプレというものがあります。

以下のプログラムは、入力された文字を場合分けして、条件と一致したときにカウントするものです。(もっと細かく言うと、入力された文字が「a」だったらという条件のプログラムを作っていきますね。)

while ((〇=getchar())&&(〇!=’¥n’))
{

  if (〇 == ‘a’)
  {
    ++△;
  }

}

※変数宣言と初期化は省略しています

一応言っておくと、〇はchar型で変数宣言されたもので、△はint型で変数宣言されたものですね。

このプログラムを覚える必要はないですが、自分で考えて作れるようになりましょう。

とは言え、こんなものを見ただけでは理解できないと思うので、解説していきますね。

【解説①】文字数カウントのテンプレ

まず、

while ((〇=getchar())&&(〇!=’¥n’))

の部分ですが、これは次の二つに分けて考えましょう。

〇に文字を代入する

〇に改行が代入されていなかったら

この2つを「&&」で繋げているので、次のような意味になりますね。

〇に改行が代入されていなかったら、〇に文字を代入する

このようにすることで、改行が入力されるまで何回でも文字を入力することができますね。逆に言えば、改行が入力されると入力を終了するということですね。

ここは重要なので、理解するまで確認しましょう。(「&&」については、先ほど紹介した記事で説明しました。)

【解説②】文字数カウントのテンプレ

次に、

  if (〇 == ‘a’)
  {
    ++△;
  }

の部分ですが、

〇に「a」が代入されたら、△をインクリメント(+1)するという意味ですね。

【解説③】文字数カウントのテンプレ

つまり、先ほどの話をまとめると、、、

while ((〇=getchar())&&(〇!=’¥n’))
{

  if (〇 == ‘a’)
  {
    ++△;
  }

}

というプログラムは、

〇に文字を入力して「a」だったら△に+1する(〇に改行が入力されるまで)

ということになりますね。

文字数カウントのサンプルコード①

ちなみにですが、ifを消して

while ((〇=getchar())&&(〇!=’¥n’))
{

   ++△;

}

というプログラムにすれば、

〇に文字を入力したら△に+1する(〇に改行が入力されるまで)

ということになりますね。このようにして、文字数をカウントするプログラムがつくれますよ~

もちろん、プログラムの最初に変数宣言や初期化をして、最後にprintfで出力するということが必要です。ですので、ちゃんと書くと、、、

#include<stdio.h>
int main()
{
    int a;
    char c;

    a = 0;
    c='c';

    while ((c=getchar())&&(c!='¥n'))
    {
  	++a;
    }

    printf("a=%d",a);
}

のようになりますね。

変数は2つだけで十分な理由

もう説明は不要かと思いますが、先ほどのプログラムを見ればわかりますよね。

必要な変数は以下の2つです。

✔文字数カウントで必要な変数

・文字の入力用の変数

・カウントする用の変数

文字数カウントのサンプルコード②

先ほどのプログラムを参考に、『文章の中に「a」、「b」、「c」の3つの文字がいくつあるか数えるプログラム』を作ってみましょう。

5分ほど自分で考えてみましょう。無理そうだったら答えを見てみましょう。

ヒント

・char型の変数は先ほどと同じ

・カウントするための変数を使い分ける

答え

#include<stdio.h>
int main()
{
    int na, nb, nc;
    char c;

    na = 0; 
    nb = 0;
    nc = 0;

    while ((c=getchar())&&(c!='¥n'))
    {
	if (c == 'a')
	{
  	    ++na;
	}
	else if (c=='b')
	{
	    ++nb;
	}
	else if (c == 'c')
	{
	    ++nc;
	}
    }
    printf("na=%d¥nnb=%d¥nnc=%d",na,nb,nc);
}

「変数==’文字’」とするときは必ず「’」(シングルクオーテーション)を付けるということと「==」を使うことを忘れないようにしましょう。

何を代入してもできるので適当に文字を打ってみます

1行目が「while」と「getchar」を使って入力したものです。「na=4」「nb=4」「nc=3」となりました。多分あっているかと思います。

まとめ:文字数のカウントで使用する変数は2つだけ

もう一度言いますね。文字数のカウントで使用する変数は2つだけですよ。

✔文字数カウントで必要な変数

・文字の入力用の変数

・カウントする用の変数

それを参考にすると、次のようなプログラムが完成しますね。

#include<stdio.h>
int main()
{
    int a;
    char c;

    a = 0;
    c='c';

    while ((c=getchar())&&(c!='¥n'))
    {
  	++a;
    }

    printf("a=%d",a);
}

「while」と「getchar」の組み合わせは便利でとてもよく使うので覚えておきましょう。

今回は以上です!

ではでは~👋