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
添付ファイル