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分ほど自分で考えてみましょう。無理そうだったら答えを見てみましょう。
答え
#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」の組み合わせは便利でとてもよく使うので覚えておきましょう。
今回は以上です!
ではでは~👋
コメント