首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

std::wmemcmp

Defined in header <cwchar>

int wmemcmp( const wchar_t* lhs, const wchar_t* rhs, std::size_t count );

比较第一个count所指向的宽字符数组的宽字符。lhsrhs.比较是按字典顺序进行的。

结果的符号是第一对宽字符的值之间的差异的符号,这些字符在所比较的数组中不同。

如果count等于零,函数什么也不做。

参数

lhs, rhs

-

pointers to the wide character arrays to compare

count

-

number of wide characters to examine

返回值

中的第一个不同的宽字符的值。lhs中的相应宽字符的值。rhs*lhs先于rhs按字典顺序排列。

​0​如果所有count宽特性lhsrhs是平等的。

中的第一个不同的宽字符的值。lhs中的相应宽字符的值。rhs*rhs先于lhs按字典顺序排列。

注记

此函数不区分区域设置,也不注意wchar_t它检查的对象:NULL和无效的宽字符也进行了比较。

二次

代码语言:javascript
复制
#include <iostream>
#include <string>
#include <cwchar>
#include <locale>
#include <clocale>
 
void demo(const wchar_t* lhs, const wchar_t* rhs, std::size_t sz)
{
    std::wcout << std::wstring(lhs, sz);
    int rc = std::wmemcmp(lhs, rhs, sz);
    if(rc == 0)
        std::wcout << " compares equal to ";
    else if(rc < 0)
        std::wcout << " precedes ";
    else if(rc > 0)
        std::wcout << " follows ";
    std::wcout << std::wstring(rhs, sz) << " in lexicographical order\n";
}
 
int main()
{
    std::setlocale(LC_ALL, "en_US.utf8");
    std::wcout.imbue(std::locale("en_US.utf8"));
 
    wchar_t a1[] = {L'α',L'β',L'γ'};
    constexpr std::size_t sz = sizeof a1 / sizeof *a1;
    wchar_t a2[sz] = {L'α',L'β',L'δ'};
 
    demo(a1, a2, sz);
    demo(a2, a1, sz);
    demo(a1, a1, sz);
}

二次

可能的产出:

二次

代码语言:javascript
复制
αβγ precedes αβδ in lexicographical order
αβδ follows αβγ in lexicographical order
αβγ compares equal to αβγ in lexicographical order

二次

另见

wcscmp

compares two wide strings (function)

memcmp

compares two buffers (function)

wcsncmp

compares a certain amount of characters from two wide strings (function)

c wmemcmp文档

代码语言:txt
复制
 © cppreference.com

在CreativeCommonsAttribution下授权-ShareAlike未移植许可v3.0。

扫码关注腾讯云开发者

领取腾讯云代金券