strcmp
|
ヘッダーで定義
<string.h>
|
||
|
int
strcmp
(
const
char
*
lhs,
const
char
*
rhs
)
;
|
||
2つのヌル終端バイト文字列を辞書順に比較します。
結果の符号は、比較対象の文字列で異なる値を持つ最初の文字のペア(両方とも unsigned char として解釈)の値の差の符号によって決まります。
lhs または rhs がヌル終端バイト文字列へのポインタでない場合、動作は未定義です。
目次 |
パラメータ
| lhs, rhs | - | 比較するヌル終端バイト文字列へのポインタ |
戻り値
負の値は、 lhs が辞書順で rhs より前に現れることを示します。
lhs と rhs が等しい場合にゼロ。
lhs が rhs より辞書順で後に現れる場合、正の値。
注記
この関数はロケール依存ではなく、 strcoll および strxfrm とは異なります。
例
#include <stdio.h> #include <string.h> void demo(const char* lhs, const char* rhs) { const int rc = strcmp(lhs, rhs); const char* rel = rc < 0 ? "precedes" : rc > 0 ? "follows" : "equals"; printf("[%s] %s [%s]\n", lhs, rel, rhs); } int main(void) { const char* string = "Hello World!"; demo(string, "Hello!"); demo(string, "Hello"); demo(string, "Hello there"); demo("Hello, everybody!" + 12, "Hello, somebody!" + 11); }
出力:
[Hello World!] precedes [Hello!] [Hello World!] follows [Hello] [Hello World!] precedes [Hello there] [body!] equals [body!]
参考文献
- C23規格 (ISO/IEC 9899:2024):
-
- 7.24.4.2 strcmp関数 (p: TBD)
- C17規格 (ISO/IEC 9899:2018):
-
- 7.24.4.2 strcmp関数 (p: 未定)
- C11規格 (ISO/IEC 9899:2011):
-
- 7.24.4.2 strcmp関数 (p: 365-366)
- C99規格 (ISO/IEC 9899:1999):
-
- 7.21.4.2 strcmp関数 (p: 328-329)
- C89/C90標準 (ISO/IEC 9899:1990):
-
- 4.11.4.2 strcmp関数
関連項目
|
二つの文字列の特定の文字数を比較する
(関数) |
|
|
(C95)
|
二つのワイド文字列を比較する
(関数) |
|
二つのバッファを比較する
(関数) |
|
|
現在のロケールに従って二つの文字列を比較する
(関数) |
|
|
C++ ドキュメント
for
strcmp
|
|