C言語 文字列の比較(一致判定) - string.h - [ strcmp ]

2008.11.12 Wednesday | by LRESULT


字列の比較をするには、strcmp()を使用します。


strcmp
書式 int strcmp( const char *s1, const char *s2 )
機能 文字列の比較
引数 const char *s1 : 比較する文字列
const char *s2 : 比較する文字列
戻り値 s1 < s2 : 負の値
s1 = s2 : 0
s1 > s2 : 正の値

2つの文字列が一致するかどうかの判定に、よく使われます。
処理系により異なるらしいのですが、
  基本的には前から順番に、文字コードを見て大小関係を調べているようです。
  その為、s1 の文字数が少ない場合でも文字コードが大きければ、正の値を返します。
文字数の指定が出来るstrncmp()については、こちら





サンプルコード
文字列「abc」「abc」を比較し、文字列「abc」「ABC」を比較してみます。
#include <stdio.h>
#include <string.h>

int main(void)
{
  char *s1 = "abc";
  char *s2 = "abc";
  char *s3 = "ABC";
  int ret;

  printf( "%s と %s の比較¥n", s1, s2 );
  ret = strcmp( s1, s2 );
  if( ret == 0 ){
    printf( "文字列が一致しました¥n" );
  }
  else{
   
printf( "文字列が異なります¥n" );
  }

  printf( "%s と %s の比較¥n", s1, s3 );
  ret = strcmp( s1, s3 );
  if( ret == 0 ){
    printf( "文字列が一致しました¥n" );
  }
  else{
    printf( "文字列が異なります¥n" );
  }

  return 0;
}



結果
abc と abc の比較
文字列が一致しました
abc と ABC の比較
文字列が異なります
と、表示されます。

手軽に比較出来るので便利です。
これを知らないと for文で1文字ずつ判定するという手間が掛かります。

カテゴリ:C言語 string.h | 22:10 | comments(1) | trackbacks(0) | -


コメント

管理者の承認待ちコメントです。

| - | 2015/09/14 8:43 PM |

コメントする











この記事のトラックバックURL

http://simd.jugem.jp/trackback/125

トラックバック