この記事では、C言語で文字列を検索する方法について解説します。
目次から探す
文字列の検索方法
文字列を検索する方法には、ライブラリ関数を使った方法と手動での検索方法の2つがあります。
ライブラリ関数を使った検索方法
C言語には、文字列を検索するための便利なライブラリ関数が用意されています。
その中でも代表的な関数として、strstr関数
があります。
strstr関数
は、指定した文字列内で特定の文字列を検索し、最初に現れる位置を返します。
以下は、strstr関数
を使った文字列の検索の例です。
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello, World!";
char search[] = "World";
char *result;
result = strstr(str, search);
if (result != NULL) {
printf("検索文字列が見つかりました。位置: %ld\n", result - str);
} else {
printf("検索文字列が見つかりませんでした。\n");
}
return 0;
}
上記のコードでは、strstr関数
を使って文字列str
内で文字列search
を検索しています。
もし検索文字列が見つかれば、その位置を表示します。
見つからなかった場合は、見つからなかったことを表示します。
手動での検索方法
もしライブラリ関数を使わずに手動で文字列を検索する場合は、ループを使って文字列を一文字ずつ比較していく方法があります。
以下は、手動での文字列の検索の例です。
#include <stdio.h>
int main() {
char str[] = "Hello, World!";
char search[] = "World";
int str_len = strlen(str);
int search_len = strlen(search);
int i, j;
for (i = 0; i <= str_len - search_len; i++) {
for (j = 0; j < search_len; j++) {
if (str[i + j] != search[j]) {
break;
}
}
if (j == search_len) {
printf("検索文字列が見つかりました。位置: %d\n", i);
break;
}
}
if (i > str_len - search_len) {
printf("検索文字列が見つかりませんでした。\n");
}
return 0;
}
上記のコードでは、ループを使って文字列str
内で文字列search
を検索しています。
もし検索文字列が見つかれば、その位置を表示します。
見つからなかった場合は、見つからなかったことを表示します。
以上が、C言語で文字列を検索する方法の例です。
ライブラリ関数を使った方法と手動での検索方法のどちらを使っても、目的の文字列を見つけることができます。