wcscmp
From cppreference.com
| ヘッダー <wchar.h> で定義 |
||
| int wcscmp( const wchar_t* lhs, const wchar_t* rhs ); |
(C95 以降) | |
2つのヌル終端ワイド文字列を辞書順で比較します。
結果の符号は、比較される文字列で最初に異なるワイド文字のペアの値の差の符号になります。
lhs または rhs がヌル終端ワイド文字列へのポインタでない場合、動作は未定義です。
目次 |
[編集] パラメータ
| lhs, rhs | - | 比較するヌル終端ワイド文字列へのポインタ |
[編集] 戻り値
lhsが辞書順でrhsより前にある場合は負の値。
lhs と rhs が等しく比較された場合はゼロ。
lhsが辞書順でrhsより後にある場合は正の値。
[編集] 注意
この関数は、wcscoll とは異なり、ロケールに依存せず、異なる Unicode ブロックの文字が一緒に使用される場合や、コードユニットの順序が照合順序と一致しない場合、順序は意味をなさない可能性があります。
[編集] 例
このコードを実行
#include <locale.h> #include <stdio.h> #include <wchar.h> void demo(const wchar_t* lhs, const wchar_t* rhs) { int rc = wcscmp(lhs, rhs); const char *rel = rc < 0 ? "precedes" : rc > 0 ? "follows" : "equals"; setlocale(LC_ALL, "en_US.utf8"); printf("[%ls] %s [%ls]\n", lhs, rel, rhs); } int main(void) { const wchar_t* string = L"どうもありがとうございます"; demo(string, L"どうも"); demo(string, L"助かった"); demo(string + 9, L"ありがとうございます" + 6); }
実行結果の例
[どうもありがとうございます] follows [どうも] [どうもありがとうございます] precedes [助かった] [ざいます] equals [ざいます]
[編集] 参照
- C23標準 (ISO/IEC 9899:2024)
- 7.29.4.4.1 wcscmp 関数 (p: TBD)
- C17標準 (ISO/IEC 9899:2018)
- 7.29.4.4.1 wcscmp 関数 (p: TBD)
- C11標準 (ISO/IEC 9899:2011)
- 7.29.4.4.1 wcscmp 関数 (p: 433)
- C99標準 (ISO/IEC 9899:1999)
- 7.24.4.4.1 wcscmp 関数 (p: 379)
[編集] 関連項目
| (C95) |
2つのワイド文字列から指定された文字数を比較する (関数) |
| (C95) |
2つの配列から指定された数のワイド文字を比較する (関数) |
| 2つの文字列を比較する (関数) | |
| (C95) |
現在のロケールに従って2つのワイド文字列を比較する (関数) |
| C++ ドキュメント for wcscmp
| |