MENU

【C言語】線形探索を使って任意の文字列を検索する方法

目次から探す

文字列の検索方法

文字列の検索は、プログラミングにおいて非常によく使用される操作です。

C言語では、線形探索と呼ばれるアルゴリズムを使って任意の文字列を検索することができます。

以下では、文字列の検索方法について解説します。

文字列の入力方法

まず、文字列を検索する前に、検索対象となる文字列を入力する必要があります。

C言語では、文字列を扱うために文字配列を使用します。

以下のように、文字配列を宣言し、ユーザーからの入力を受け取ることができます。

#include <stdio.h>
int main() {
    char target[100]; // 検索対象の文字列を格納する配列
    printf("検索対象の文字列を入力してください: ");
    scanf("%s", target);
    
    // ここで検索処理を行う
    
    return 0;
}

上記のコードでは、targetという名前の文字配列を宣言し、scanf関数を使ってユーザーからの入力を受け取っています。

%sは文字列を受け取るためのフォーマット指定子です。

線形探索アルゴリズムの実装

次に、線形探索アルゴリズムを使って文字列を検索する方法について説明します。

線形探索は、配列やリストなどのデータ構造を順番に探索し、目的の要素を見つけるまで繰り返し処理を行うアルゴリズムです。

以下のコードは、線形探索アルゴリズムを使って文字列を検索する例です。

#include <stdio.h>
#include <stdbool.h> // bool型を使用するために必要
bool linearSearch(char target[], char key) {
    int i = 0;
    while (target[i] != '\0') {
        if (target[i] == key) {
            return true; // キーが見つかった場合はtrueを返す
        }
        i++;
    }
    return false; // キーが見つからなかった場合はfalseを返す
}
int main() {
    char target[100];
    printf("検索対象の文字列を入力してください: ");
    scanf("%s", target);
    
    char key;
    printf("検索する文字を入力してください: ");
    scanf(" %c", &key); // スペースを入れることで改行文字を読み飛ばす
    
    bool result = linearSearch(target, key);
    if (result) {
        printf("文字 '%c' は文字列 '%s' に含まれています。\n", key, target);
    } else {
        printf("文字 '%c' は文字列 '%s' に含まれていません。\n", key, target);
    }
    
    return 0;
}

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

この関数は、targetという文字配列と、keyという文字を受け取り、線形探索を行っています。

見つかった場合はtrueを、見つからなかった場合はfalseを返します。

文字列の検索結果の表示

最後に、文字列の検索結果を表示する方法について説明します。

先ほどのコードでは、線形探索の結果をresultという変数に格納しています。

この結果に応じて、検索結果を表示するメッセージを出力しています。

上記のコードを実行すると、ユーザーからの入力に基づいて文字列の検索が行われ、結果が表示されます。

目次から探す