Defined in header <wchar.h> | ||
---|---|---|
int wcscmp( const wchar_t *lhs, const wchar_t *rhs ); | (since C95) |
Compares two null-terminated wide strings lexicographically.
The sign of the result is the sign of the difference between the values of the first pair of wide characters that differ in the strings being compared.
The behavior is undefined if lhs
or rhs
are not pointers to null-terminated wide strings.
lhs, rhs | - | pointers to the null-terminated wide strings to compare |
Negative value if lhs
appears before rhs
in lexicographical order.
Zero if lhs
and rhs
compare equal.
Positive value if lhs
appears after rhs
in lexicographical order.
This function is not locale-sensitive, unlike wcscoll
, and the order may not be meaningful when characters from different Unicode blocks are used together or when the order of code units does not match any collation order.
#include <wchar.h> #include <stdio.h> #include <locale.h> void demo(const wchar_t* lhs, const wchar_t* rhs) { int rc = wcscmp(lhs, rhs); setlocale(LC_ALL, "en_US.utf8"); if(rc == 0) printf("[%ls] equals [%ls]\n", lhs, rhs); else if(rc < 0) printf("[%ls] precedes [%ls]\n", lhs, rhs); else if(rc > 0) printf("[%ls] follows [%ls]\n", lhs, rhs); } int main(void) { const wchar_t* string = L"どうもありがとうございます"; demo(string, L"どうも"); demo(string, L"助かった"); demo(string + 9, L"ありがとうございます" + 6); }
Possible output:
[どうもありがとうございます] follows [どうも] [どうもありがとうございます] precedes [助かった] [ざいます] equals [ざいます]
(C95) | compares a certain amount of characters from two wide strings (function) |
(C95) | compares a certain amount of wide characters from two arrays (function) |
compares two strings (function) |
|
(C95) | compares two wide strings in accordance to the current locale (function) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
http://en.cppreference.com/w/c/string/wide/wcscmp