##### cppreference.com

##### Search

Create account

##### Namespaces

- Page
- Discussion

##### Variants

##### Views

- View
- Edit
- History

##### Actions

# std::wcscmp

From cppreference.com
< cpp‎ | string‎ | wide

Defined in header `<cwchar>` |  |
int wcscmp( const wchar_t* lhs, const wchar_t* rhs ); |  |

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.

### [edit] Parameters

lhs, rhs | - | pointers to the null-terminated wide strings to compare

### [edit] Return value

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.

### [edit] Notes

This function is not locale-sensitive, unlike std::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 collation order.

### [edit] Example

Run this code

    #include <vector>
    #include <cwchar>
    #include <algorithm>
    #include <iostream>

    int main()
    {
        std::vector<const wchar_t*> leaders{L"Ленин", L"Сталин", L"Маленков",
            L"Хрущёв", L"Брежнев", L"Андропов", L"Черненко", L"Горбачёв"};

        std::sort(leaders.begin(), leaders.end(), [](auto strA, auto strB) {
            return std::wcscmp(strA, strB) < 0;
        });

        std::setlocale(LC_ALL, "en_US.utf8");
        std::wcout.imbue(std::locale("en_US.utf8"));
        for (auto leader : leaders)
            std::wcout << leader << '\n';
    }

Possible output:

    Андропов
    Брежнев
    Горбачёв
    Ленин
    Маленков
    Сталин
    Хрущёв
    Черненко

### [edit] See also

wcsncmp | compares a certain amount of characters from two wide strings (function) [edit]
wmemcmp | compares a certain amount of wide characters from two arrays (function) [edit]
strcmp | compares two strings (function) [edit]
wcscoll | compares two wide strings in accordance to the current locale (function) [edit]
C documentation for wcscmp

Retrieved from "http://en.cppreference.com/mwiki/index.php?title=cpp/string/wide/wcscmp&oldid=76643"