C言語 標準関数 | 応用 | サンプル

標準関数
構文
応用

管理人

プライバシーポリシー


書式

#include <string.h>

int strcmp( const char *str1 , const char *str2 );

■戻り値:
str1とstr2が等しいならば0、
str1>str2ならば正の値、
str1<str2ならば負の値を返す。

説明

str1とstr2を比較してその結果を返す。
比較に際してstr1、str2を文字列の先頭アドレスから順次1バイトずつ比較して、等しく無い場合にその1バイトの大小で以って全体の大小を判定する。

1バイトずつの比較で等しい場合は、str1またはstr2でNULL(\0)が出現するまで比較し、共にNULLならば等しいので0、str2がNULLならばstr1>str2なので正の値、str1がNULLならばstr1<str2なので負の値を返す。

尚、本関数はNULLが出現するまで比較を継続する為、str1またはstr2の内容が信頼できない場合などは、代わりに比較サイズが指定出来るstrncmpの使用を推奨する。

サンプル

#include <string.h>

main() {
  int iRet;

  iRet = strcmp( "12345" , "12345" );
  printf( "iRet=%d\n" , iRet );/* str1==str2 なので0 */

  iRet = strcmp( "12346" , "12345" );
  printf( "iRet=%d\n" , iRet );/* str1>str2 なので正の値 */

  iRet = strcmp( "12345" , "12346" );
  printf( "iRet=%d\n" , iRet );/* str1<str2 なので負の値 */

  iRet = strcmp( "123450" , "12345" );
  printf( "iRet=%d\n" , iRet );/* str1>str2 なので正の値 */

  iRet = strcmp( "12345" , "123450" );
  printf( "iRet=%d\n" , iRet );/* str1<str2 なので負の値 */
}

実行結果

iRet=0
iRet=1
iRet=-1
iRet=1
iRet=-1

Copyright © 2008-2013 http://hitorilife.com All Rights Reserved.