strcmp
From cppreference.com
| ヘッダー <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 The strcmp function (p: TBD)
- C17標準 (ISO/IEC 9899:2018)
- 7.24.4.2 The strcmp function (p: TBD)
- C11標準 (ISO/IEC 9899:2011)
- 7.24.4.2 The strcmp function (p: 365-366)
- C99標準 (ISO/IEC 9899:1999)
- 7.21.4.2 The strcmp function (p: 328-329)
- C89/C90標準 (ISO/IEC 9899:1990)
- 4.11.4.2 The strcmp function
[編集] 関連項目
| 2つの文字列の指定された数の文字を比較する (関数) | |
| (C95) |
2つのワイド文字列を比較する (関数) |
| 2つのバッファを比較する (関数) | |
| 現在のロケールに従って2つの文字列を比較する (関数) | |
| C++ ドキュメント (strcmp)
| |