C言語 色々な文字列の比較サンプル
関数名 |
説明 |
strcmp |
文字列の比較 |
stricmp |
大文字小文字を無視しての文字列の比較 |
strcasecmp |
stricmpと同様 |
strncmp |
文字数を指定した文字列比較。文字列の先頭一致、末尾一致の判定もできます。 |
strchr |
文字列に指定charが含まれるか判定 |
strstr |
文字列に指定文字列が含まれるか判定 |
サンプルダウンロード
#ref error :ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (strcmp.c)
サンプルソース
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void) {
char *a = "aaa";
char *aaabbbcccdddcccbbbaaa = "aaabbbcccdddcccbbbaaa";
// strcmp 文字列同士を比較する
if (strcmp(a, "aaa") == 0) {
puts("変数aと aaa は同じ文字列です");
} else {
puts("変数aと aaa は違う文字列です");
}
if (strcmp(a, "AaA") == 0) {
puts("変数aと AaA は同じ文字列です");
} else {
puts("変数aと AaA は違う文字列です");
}
// stricmp 大文字小文字を無視して文字列を比較する
// strcasecmp関数も同様
if (stricmp(a, "AaA") == 0) {
puts("変数aと AaA は大文字小文字の違いを無視すれば同じ文字列です");
} else {
puts("変数aと AaA は大文字小文字の違いを無視しても違う文字列です");
}
// strncmp 指定文字数だけ文字列を比較する。先頭、末尾の比較にも使えます
// 文字列の先頭が一致するか調べる
if (strncmp(a, "aaabbbcccddd", strlen(a)) == 0) {
puts("変数aと aaabbbcccddd の先頭は同じ文字列です");
} else {
puts("変数aと aaabbbcccddd の先頭は違う文字列です");
}
// 文字列の末尾が一致するか調べる
size_t lena = strlen(a);
size_t len = strlen(aaabbbcccdddcccbbbaaa);
if (strncmp(a, aaabbbcccdddcccbbbaaa + len - lena, strlen(a)) == 0) {
puts("変数aと aaabbbcccdddcccbbbaaa の末尾は同じ文字列です");
} else {
puts("変数aと aaabbbcccdddcccbbbaaa の末尾は違う文字列です");
}
// strstr 文字列に文字列が含まれるか調べる
if (strstr(aaabbbcccdddcccbbbaaa, "bbb") != NULL ) {
puts("変数aaabbbcccdddcccbbbaaaには bbb が含まれます");
} else {
puts("変数aaabbbcccdddcccbbbaaaには bbb が含まれません");
}
if (strstr(aaabbbcccdddcccbbbaaa, "eee") != NULL ) {
puts("変数aaabbbcccdddcccbbbaaaには eee が含まれます");
} else {
puts("変数aaabbbcccdddcccbbbaaaには eee が含まれません");
}
// strchr 文字列が一文字だけ含まれるか調べる
// index関数も同様
if (strchr(aaabbbcccdddcccbbbaaa, 'd') != NULL ) {
puts("変数aaabbbcccdddcccbbbaaaには d が含まれます");
} else {
puts("変数aaabbbcccdddcccbbbaaaには d が含まれません");
}
if (strchr(aaabbbcccdddcccbbbaaa, 'e') != NULL ) {
puts("変数aaabbbcccdddcccbbbaaaには e が含まれます");
} else {
puts("変数aaabbbcccdddcccbbbaaaには e が含まれません");
}
return EXIT_SUCCESS;
}
実行結果
変数aと aaa は同じ文字列です
変数aと AaA は違う文字列です
変数aと AaA は大文字小文字の違いを無視すれば同じ文字列です
変数aと aaabbbcccddd の先頭は同じ文字列です
変数aと aaabbbcccdddcccbbbaaa の末尾は同じ文字列です
変数aaabbbcccdddcccbbbaaaには bbb が含まれます
変数aaabbbcccdddcccbbbaaaには eee が含まれません
変数aaabbbcccdddcccbbbaaaには d が含まれます
変数aaabbbcccdddcccbbbaaaには e が含まれません
最終更新:2012年10月21日 22:30