Cの文字列を比較します – strcmpの

1. string.hの中のstrcmp機能

比較すると 2 Cの数は、我々はいくつかの非常に簡単な数学を行っています <, >, >=, <=, ==, !=, しかし、文字列を比較するために、我々は機能を使用する必要がある計算を使用することはできません strcmpの 図書館で string.hの.

関数strcmpは、文字列s1とs2チェーンを比較した結果を与えます:

  • 1 S1はS2よりも大きい場合
  • 0 S1、S2のような場合は
  • -1 S1はS2よりも小さい場合

注意: Linuxでの, この関数は負の値を返します。, ポジティブ, 0 (間の距離であります 2 S1で、それぞれ別の文字, S2).

たとえば、次のプログラム:

#include <stdio.h>
#include <string.h>

int main()
{
    char s1[20];
    char s2[20];                

    do 
    {
        printf("Enter s1: ");
        gets(s1);
        printf("Enter s2: ");
        gets(s2);

        int x = strcmp(s1, s2);
        printf("x = %d", x);

        if(x < 0) printf(" => %s < %s", s1, s2);
        if(x > 0) printf(" => %s > %s", s1, s2);
        if(x == 0)printf(" => %s = %s", s1, s2);

        printf("\n\n");

    } while ( strcmp(s1, s2) != 0);

    return 0;
}

結果:

S1を入力します。: ハング
S2を入力します。: Ho
X = -1 =>ハング < Ho

S1を入力します。: 香港
S2を入力します。: 彼女
X = 1 =>香港>本町

S1を入力します。: ハング
S2を入力します。: ハング
X = -1 =>ハング < ハング

S1を入力します。: オフィス
S2を入力します。: オフィス
X = 0 => =インタレスト

2. 原理は比較します

原理は比較します 2 ブラウザを回すチェーン 2 各文字 2 チェーン. ASCIIコードの比較 2 文字その, 大きなチェーンよりも大きいと比較停止された文字コード. 文字の文字列は、今までそれが小さいの前に文字列を比較する場合.

S1 S2 結果 原因
ハング Ho ハング < Ho やります < ザ· (97 < 111)
香港 彼女 香港>本町 比較するためにS2からのすべての文字
ハング ハング ハング < ハング Hを行います < 時間 (72 < 104)
オフィス オフィス 利息=インタレスト 2 同一の配列

参照する ASCIIエンコーディング