strcmp() - ストリングの比較

標準

標準/拡張機能 C/C++ 依存項目

ISO C
POSIX.1
XPG4
XPG4.2
C99
Single UNIX Specification、バージョン 3

両方  

形式

#include <string.h>

int strcmp(const char *string1, const char *string2);

機能説明

strcmp() 組み込み関数は、string1 で示される ストリングと string2 で示されるストリングを比較します。関数のストリング引数には、ストリングの終わりにマーク付けする NULL 文字 (¥0) が含まれている必要があります。

ストリング間の関係は、次のような減算によって判別されます。string1[i] - string2[i] (i は、0 から小さいほうのストリングの strlen に増加)。ゼロ以外の戻り値の符号は、比較するストリングが異なる、最初のバイト対 (両方とも符号なし char 型と解釈されている) の値間における差の符号によって決まります。この関数は、ロケール依存ではありません

戻り値

strcmp() は、ストリング間の関係を示す、以下のような値を戻します。
意味
< 0
string1 で示されるストリングが、string2 で 示されるストリングより小さい。
= 0
string1 で示されるストリングが、string2 で 示されるストリングと等しい。
> 0
string1 で示されるストリングが、string2 で 示されるストリングより大きい。

CELEBS36
⁄* CELEBS36                                      

   This example compares the two strings passed to main using                   
   &strcmp..                                                                    
                                                                                
 *⁄                                                                             
#include <stdio.h>                                                              
#include <string.h>                                                             
                                                                                
int main(int argc, char ** argv)                                                
{                                                                               
  int  result;                                                                  
                                                                                
  if ( argc != 3 )                                                              
  {                                                                             
    printf( "Usage: %s string1 string2¥n", argv[0] );
  }                                                                             
  else                                                                          
  {                                                                             
                                                                                
    result = strcmp( argv[1], argv[2] );                                        
                                                                                
    if ( result == 0 )                                                          
      printf( "¥"%s¥" is identical to ¥"%s¥"¥n", argv[1], argv[2] );
    else if ( result < 0 )                                                      
      printf( "¥"%s¥" is less than ¥"%s¥"¥n", argv[1], argv[2] );
    else                                                                        
      printf( "¥"%s¥" is greater than ¥"%s¥"¥n", argv[1], argv[2] );
  }                                                                             
}                                                                               

出力

入力がストリング "is this first?" および "is this before that one?"の場合、想定される出力は次のようになります。
"is this first?" is greater than "is this before that one?"

関連情報