2012-01-17 39 views
5

C文字列の比較に関する情報を見つけるのが難しいです。私はC++とは異なり、Cは演算子のオーバーロードをサポートしていないことを理解しています。したがって、ある文字列が他の文字列より大きいか小さいかをチェックする方法があるのでしょうか?C文字列の比較演算子

お返事ありがとうございます。これは、正直なところ、私が実際に質問をしなければならなかったのは、関連する投稿を見つけることができなかった最初の回です。

答えて

14

それぞれ異なる目的で使用されています(現在はワイド文字の変形を省略しています)。

strcmp - 文字列ごとに2つの文字列を比較します(文字列は等しいとは限りませんが、人間の考え方と一致する必要はありません - strcollを参照)。最初のものだけを比較するための変形があるn文字、strncmpです。

strcasecmp - 大文字と小文字を区別せずに2つの文字列を比較します。最初のものだけを比較するための変形があります。n文字、strncasecmp

strcoll - 現在設定されているロケールを観察して2つの文字列を比較します(これが照合と呼ばれ、この場合は比較されません)。ドイツの視聴者のためにssßを比較したい場合は、これを使用する必要があります。


あなたは言語に

if (string1 > string2) ... 

を書くかもしれない場合、あなたは基本的にあなたが比較演算子を保持して、関数呼び出しの中に両方のオペランドを移動C.に

if (strmp(string1, string2) > 0) ... 

を記述する必要があります代わりに0と比較してください。

2

使用のstrcmp()C.

例えば

あなたは、2つの文字列s1とs2を比較したい場合は、

strcmpの彼らは、正の整数であれば等しい場合(S1、S2)は0を返しますでs1はs2より大きく、s1がs2より小さい場合は負の整数です。