strncmp,_mbsncmp,wcsncmp

提供: RAD Studio
移動先: 案内検索

string.h:インデックス への移動


ヘッダーファイル

string.h, mbstring.h

カテゴリ

メモリおよび文字列操作ルーチン,インラインルーチン

プロトタイプ

int strncmp(const char *s1, const char *s2, size_t maxlen);

int wcsncmp(const wchar_t *s1, const wchar_t *s2, size_t maxlen);

int _mbsncmp(const unsigned char *s1, const unsigned char *s2, size_t maxlen);

#define _mbccmp(__s1, __s2) _mbsncmp((__s1),(__s2),1)

説明

文字列の一部を別の文字列の一部と比較します。

strncmp は,strcmp と同様の符号なしの比較を行いますが,maxlen 文字までしか調べません。対応する文字が異なるか,maxlen 文字を調べ終わるまで,各文字列の最初の文字から順に文字を比較します。

戻り値

  • strncmp は,s1(またはその一部)と s2(またはその一部)を比較した結果に基づいて,次の整数値を返します。
  • s1 が s2 より小さい場合は,< 0
  • s1 と s2 が同じ場合は,= 0
  • s1 が s2 より大きい場合は,> 0



 #include <string.h>
 #include <stdio.h>
 int  main(void)
 {
    char *buf1 = "aaabbb", *buf2 = "bbbccc", *buf3 = "ccc";
    int ptr;
    ptr = strncmp(buf2,buf1,3);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 1\n");
    else
       printf("buffer 2 is less than buffer 1\n");
    ptr = strncmp(buf2,buf3,3);
    if (ptr > 0)
       printf("buffer 2 is greater than buffer 3\n");
    else
       printf("buffer 2 is less than buffer 3\n");
    return(0);
 }



移植性



POSIX Win32 ANSI C ANSI C++

strncmp

+

+

+

+

_mbsncmp

+

_mbccmp

+

wcsncmp

+

+

+