strncmp,_mbsncmp,wcsncmp
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 |
+ |
+ |
+ |