この記事では、C言語で文字列内の数字の出現回数をカウントする方法を紹介します。
数字の出現回数をカウントする方法
プログラミングにおいて、文字列内の数字の出現回数をカウントする方法は様々あります。
ここでは、C言語での2つの方法を紹介します。
方法1: ループを使ったカウント
まず、ループを使って文字列を一文字ずつ調べる方法を紹介します。
以下のサンプルコードをご覧ください。
#include <stdio.h>
int countDigitsLoop(char* str) {
int count = 0;
int i = 0;
while (str[i] != '\0') {
if (str[i] >= '0' && str[i] <= '9') {
count++;
}
i++;
}
return count;
}
int main() {
char str[] = "Hello123World456";
int digitCount = countDigitsLoop(str);
printf("数字の出現回数: %d\n", digitCount);
return 0;
}
上記のコードでは、countDigitsLoop関数
を定義しています。
この関数では、引数として与えられた文字列を一文字ずつ調べ、数字が現れるたびにカウントを増やしています。
最終的なカウントの値を返します。
メイン関数では、サンプルとして文字列Hello123World456
を使ってcountDigitsLoop関数
を呼び出し、数字の出現回数を表示しています。
実行結果は以下の通りです。
数字の出現回数: 6
方法2: 文字列操作関数を使ったカウント
次に、文字列操作関数を使って数字を検索し、出現回数をカウントする方法を紹介します。
以下のサンプルコードをご覧ください。
#include <stdio.h>
#include <string.h>
int countDigitsString(char* str) {
int count = 0;
char* ptr = str;
while ((ptr = strpbrk(ptr, "0123456789")) != NULL) {
count++;
ptr++;
}
return count;
}
int main() {
char str[] = "Hello123World456";
int digitCount = countDigitsString(str);
printf("数字の出現回数: %d\n", digitCount);
return 0;
}
上記のコードでは、countDigitsString関数
を定義しています。
この関数では、strpbrk関数
を使って文字列内で最初に数字が現れる位置を検索し、その後に出現する数字を順番にカウントしています。
最終的なカウントの値を返します。
メイン関数では、サンプルとして文字列Hello123World456
を使ってcountDigitsString関数
を呼び出し、数字の出現回数を表示しています。
実行結果は以下の通りです。
数字の出現回数: 6
以上が、C言語で文字列内の数字の出現回数をカウントする方法です。
方法1ではループを使って一文字ずつ調べる方法を紹介しました。
方法2では文字列操作関数を使って数字を検索し、出現回数をカウントする方法を紹介しました。
どちらの方法も使いやすく、効率的に数字の出現回数をカウントすることができます。