BohYoh.comトップページへ
C & C++ FAQ
目次

C C++ 二つの文字列が等しいかどうかの比較はどうするのですか。

 整数型や実数型の値が等しいか/等しくないかの判断に利用する等値演算子==あるいは!=は、文字列の比較においては利用できません。というのも、

char s[10], t[10]; /* … */ if (s == t) /* … */

は、文字列stの内容が等しいかどうかを比較するのではなく、stが同じアドレスであるかどうかの比較と解釈されてしまうからです。
 文字列の内容が等しいかどうかの比較には、標準ライブラリであるstrcmp関数を利用します。プログラム例を示します。

char s[10], t[10]; /* … */ if (strcmp(s, t)) < 0) /* sの方が小さい */ else if (strcmp(s, t)) > 0) /* sの方が大きい */ else /* sとtは等しい */


■ 根拠 ■
標準C §7.11.4.2 The strcmp function
標準C99 §7.21.4.2 The strcmp function
標準C++ §21.4 Null-terminated sequence utilities

■ 参照 ■
関数 strcmp関数

戻る

BohYoh.comロゴ