【C言語】文字列内の数字の出現回数をカウントする方法を解説

この記事では、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では文字列操作関数を使って数字を検索し、出現回数をカウントする方法を紹介しました。

どちらの方法も使いやすく、効率的に数字の出現回数をカウントすることができます。

目次から探す