C言語で文字列の数を数える方法

C言語では、ループと条件分岐により文字列数をカウントすることができます。以下にサンプルコードを示します。

#include <stdio.h>

int countStrings(char *str) {
    int count = 0;
    int insideWord = 0;

    while (*str != '\0') {
        if (*str != ' ' && *str != '\n' && *str != '\t') {
            if (!insideWord) {
                count++;
                insideWord = 1;
            }
        } else {
            insideWord = 0;
        }
        str++;
    }
    return count;
}

int main() {
    char str[] = "Hello   world! This is a test.";
    int count = countStrings(str);

    printf("Number of strings: %d\n", count);

    return 0;
}

上記コードでは、countStrings関数はcountという変数で文字列の個数を数え、さらにinsideWordという変数を使用して現在文字が文字列内か判断します。ループは入力文字列を繰り返し処理し、スペース、タブ、または改行文字に遭遇しない場合、文字列内にない場合はinsideWordを1に設定し、同時にcountを1増やします。文字列内にある場合は、何のアクションもしません。スペース、タブ、または改行文字に遭遇すると、insideWordを0に設定し、文字列内にないことを示します。最後に、数えられた文字列の個数を返します。

main関数で入力文字列strを定義し、countStrings関数で文字列数をカウントし、その結果を出力しています。

bannerAds