🔧 文字列 ・ string.h ・ C89
strcmp の使い方int strcmp(const char *s1, const char *s2);
2つの文字列を辞書順に比較する。等しければ0、s1がs2より小さければ負、大きければ正を返す。文字列の内容比較には==ではなく必ずこの関数を使う必要がある。 大文字小文字を区別せずに比較したい場合はstricmpや自前でtolowerを併用する必要がある。
#include <stdio.h>
#include <string.h>
int main(void) {
if (strcmp("abc", "abc") == 0) {
puts("equal");
}
return 0;
}
⚠️ if (s1 == s2)と書くとポインタ同士の比較になり、内容が同じでも別々の領域にあれば偽になる典型的な初心者ミス。
アプリの関数リファレンスで引く(無料・登録不要) 関数一覧へ
strcmp と一緒に使う関数memcmp
memcpy
memmove
memset
memset_explicit
strcat
strchr
strcoll
strcpy
strcspn
strdup
strerror
strlen
strncat
strncmp
strncpy
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。