MENU

【C言語】文字列中の空白の数をカウントする方法を解説

この記事では、C言語で文字列中の空白の数をカウントする方法を解説します。

ループやポインタ、標準ライブラリ関数を使った3つの方法を紹介します。

目次から探す

空白の数をカウントする方法

プログラミングにおいて、文字列中の空白の数をカウントする方法はさまざまあります。

方法1: ループを使ったカウント

まず最初の方法は、ループを使って文字列中の空白の数をカウントする方法です。

以下のサンプルコードをご覧ください。

#include <stdio.h>
int countSpaces(char* str) {
    int count = 0;
    int i = 0;
    
    while (str[i] != '\0') {
        if (str[i] == ' ') {
            count++;
        }
        i++;
    }
    
    return count;
}
int main() {
    char str[] = "Hello World! This is a sample string.";
    int spaces = countSpaces(str);
    
    printf("空白の数: %d\n", spaces);
    
    return 0;
}

上記のコードでは、countSpacesという関数を定義しています。

この関数は、引数として文字列を受け取り、その文字列中の空白の数をカウントして返します。

main関数では、サンプルの文字列を用意し、countSpaces関数を呼び出して空白の数を取得し、結果を表示しています。

実行結果は以下の通りです。

空白の数: 7

方法2: ポインタを使ったカウント

次に、ポインタを使って文字列中の空白の数をカウントする方法を紹介します。

以下のサンプルコードをご覧ください。

#include <stdio.h>
int countSpaces(char* str) {
    int count = 0;
    
    while (*str != '\0') {
        if (*str == ' ') {
            count++;
        }
        str++;
    }
    
    return count;
}
int main() {
    char str[] = "Hello World! This is a sample string.";
    int spaces = countSpaces(str);
    
    printf("空白の数: %d\n", spaces);
    
    return 0;
}

上記のコードでは、countSpaces関数の中でポインタを使って文字列を走査しています。

ポインタを使うことで、ループ変数を明示的に使わずに文字列を走査することができます。

実行結果は以下の通りです。

空白の数: 7

方法3: 標準ライブラリ関数を使ったカウント

最後に、C言語の標準ライブラリ関数を使って文字列中の空白の数をカウントする方法を紹介します。

以下のサンプルコードをご覧ください。

#include <stdio.h>
#include <string.h>
int countSpaces(char* str) {
    int count = 0;
    char* ptr = str;
    
    while ((ptr = strchr(ptr, ' ')) != NULL) {
        count++;
        ptr++;
    }
    
    return count;
}
int main() {
    char str[] = "Hello World! This is a sample string.";
    int spaces = countSpaces(str);
    
    printf("空白の数: %d\n", spaces);
    
    return 0;
}

上記のコードでは、countSpaces関数の中でstrchr関数を使って文字列中の空白を検索しています。

strchr関数は、指定した文字が最初に現れる位置のポインタを返す関数です。

これを使って空白を検索し、見つかった場合にはカウントを増やします。

実行結果は以下の通りです。

空白の数: 7

以上が、C言語で文字列中の空白の数をカウントする3つの方法の解説です。

それぞれの方法には特徴がありますので、状況に応じて適切な方法を選択してください。

目次から探す