stricmp、_mbsicmp、_wcsicmp
String.h:インデックス への移動
ヘッダー ファイル
string.h, mbstring.h
カテゴリ
メモリおよび文字列操作ルーチン
プロトタイプ
<span class="codeInline">int stricmp(const char *s1, const char *s2);</span>
<span class="codeInline">int _wcsicmp(const wchar_t *s1, const wchar_t *s2);</span>
<span class="codeInline">int _mbsicmp(const unsigned char *s1, const unsigned char *s2);</span>
説明
ある文字列と別の文字列を、大文字小文字の区別なしで比較します。
stricmp
は、s1 と s2 の符号なし比較を実行します。各文字列の最初の文字から開始し、次の文字へと、次の状態になるまで継続します:
- 対応する文字が異なった
- または、文字列の最後まで到達した
比較では、大文字小文字を区別しません。stricmp
は、s1(またはその一部)を s2(またはその一部)と比較した結果に基づいて、値(< 0、0、または > 0)を返します。
ルーチン stricmp
と strcmpi
は同じです。strcmpi
は、strcmpi
から stricmp
への呼び出しを変換する string.h 内のマクロを介して実装されています。このため、stricmp
を使用するには、そのマクロを利用可能にするために、ヘッダー ファイル string.h をインクルードする必要があります。
メモ: RAD Studio では、関数は文字列を比較のために大文字に変換します。これは、他の実装、特に比較のために小文字にする Visual C++ とは異なります。
戻り値
s2 より小さい |
< 0 |
s2 と同じ |
== 0 |
s2 より大きい |
> 0 |
例
#include <string.h>
#include <stdio.h>
int main(void)
{
char *buf1 = "BBB", *buf2 = "bbb";
int ptr;
ptr = stricmp(buf2, buf1);
if (ptr > 0)
printf("buffer 2 is greater than buffer 1\n");
if (ptr < 0)
printf("buffer 2 is less than buffer 1\n");
if (ptr == 0)
printf("buffer 2 equals buffer 1\n");
return 0;
}
移植性
POSIX | Win32 | ANSI C | ANSI C++ | |
---|---|---|---|---|
stricmp |
+ |
+ |
+ | |
_mbsicmp |
+ |
|||
_wcsicmp |
+ |