【C言語】文字列の検索方法を解説(文字指定・文字列指定)

この記事では、C言語における文字指定と文字列指定による検索方法を解説します。

目次から探す

文字指定による検索方法

文字指定による検索の基本的な方法

文字指定による検索は、特定の文字を検索するための方法です。

C言語では、文字列を配列として扱いますので、文字列内の文字を一つずつ比較していくことで検索を行います。

以下に、文字指定による検索の基本的な方法のサンプルコードを示します。

#include <stdio.h>
int main() {
    char str[] = "Hello, World!";
    char target = 'o';
    int found = 0;
    for (int i = 0; str[i] != '\0'; i++) {
        if (str[i] == target) {
            found = 1;
            break;
        }
    }
    if (found) {
        printf("文字 '%c' は見つかりました。\n", target);
    } else {
        printf("文字 '%c' は見つかりませんでした。\n", target);
    }
    return 0;
}

上記のコードでは、文字列 Hello, World! の中から文字 ‘o’ を検索しています。

文字列を一つずつ比較し、目的の文字が見つかった場合には found 変数を 1 に設定し、ループを抜けます。

最後に、found の値に応じて結果を表示します。

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

文字 'o' は見つかりました。

文字指定による検索の応用方法

文字指定による検索は、単純な文字の検索だけでなく、特定の条件を満たす文字を検索する際にも応用することができます。

例えば、文字列内の数字の個数を数える場合、文字指定による検索を利用することができます。

以下に、数字の個数を数えるサンプルコードを示します。

#include <stdio.h>
int main() {
    char str[] = "abc123def456ghi789";
    int count = 0;
    for (int i = 0; str[i] != '\0'; i++) {
        if (str[i] >= '0' && str[i] <= '9') {
            count++;
        }
    }
    printf("数字の個数: %d\n", count);
    return 0;
}

上記のコードでは、文字列 abc123def456ghi789 の中から数字を検索し、個数を数えています。

文字が数字であるかどうかを判定するために、ASCIIコードを利用しています。

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

数字の個数: 9

文字列指定による検索方法

文字列指定による検索の基本的な方法

文字列指定による検索は、特定の文字列を検索するための方法です。

C言語では、文字列を配列として扱いますので、文字列内の部分文字列を一致させることで検索を行います。

以下に、文字列指定による検索の基本的な方法のサンプルコードを示します。

#include <stdio.h>
#include <string.h>
int main() {
    char str[] = "Hello, World!";
    char target[] = "World";
    char *result;
    result = strstr(str, target);
    if (result != NULL) {
        printf("文字列 '%s' は見つかりました。\n", target);
    } else {
        printf("文字列 '%s' は見つかりませんでした。\n", target);
    }
    return 0;
}

上記のコードでは、文字列 Hello, World! の中から文字列 World を検索しています。

strstr 関数を利用することで、部分文字列の一致を判定しています。

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

文字列 'World' は見つかりました。

文字列指定による検索の応用方法

文字列指定による検索は、複雑な条件を満たす部分文字列を検索する際にも応用することができます。

例えば、文字列内の特定の単語の出現回数を数える場合、文字列指定による検索を利用することができます。

以下に、単語 apple の出現回数を数えるサンプルコードを示します。

#include <stdio.h>
#include <string.h>
int main() {
    char str[] = "I have an apple, he has an apple, we all love apples.";
    char target[] = "apple";
    char *result;
    int count = 0;
    result = strstr(str, target);
    while (result != NULL) {
        count++;
        result = strstr(result + 1, target);
    }
    printf("単語 '%s' の出現回数: %d\n", target, count);
    return 0;
}

上記のコードでは、文字列 I have an apple, he has an apple, we all love apples. の中から単語 apple を検索し、出現回数を数えています。

strstr 関数を利用して、部分文字列の一致を判定し、出現回数をカウントしています。

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

単語 'apple' の出現回数: 3

以上が、C言語における文字指定と文字列指定による検索方法です。

目次から探す