wcsncmp (Strings) – C 中文开发手册

作者: Arvin Chen 分类: C 来源: Break易站(www.breakyizhan.com)
  •   C 语言中文开发手册

    wcsncmp (Strings) - C 中文开发手册

    在头文件<wchar.h>中定义
    int wcsncmp(const wchar_t * lhs,const wchar_t * rhs,size_t count); (自C95以来)

    比较count两个以null结尾的宽字符串的最宽字符。比较按字典顺序完成。结果的符号是所比较的字符串中第一对宽字符值不同的标志。如果lhs或rhs不是指向以空字符结尾的字符串的指针,行为是未定义的。

    参数

    lhs,rhs - 指向以空字符结尾的宽字符串进行比较的指针
    计数 - 最大数量的字符进行比较

    返回值

    如果以字典顺序lhs出现,则为负值rhs。零如果lhs和rhs比较相等。如果按字典顺序lhs出现,则为正值rhs。

    注意

    与函数不同wcscoll,此函数不区分语言环境wcsxfrm。

    示例

    #include <stdio.h>
    #include <wchar.h>
    #include <locale.h>
     
    void demo(const wchar_t *lhs, const wchar_t *rhs, int sz)
    {
        int rc = wcsncmp(lhs, rhs, sz);
        if(rc == 0)
            printf("First %d characters of [%ls] equal [%ls]\n", sz, lhs, rhs);
        else if(rc < 0)
            printf("First %d characters of [%ls] precede [%ls]\n", sz, lhs, rhs);
        else if(rc > 0)
            printf("First %d characters of [%ls] follow [%ls]\n", sz, lhs, rhs);
    }
     
    int main(void)
    {
        const wchar_t *str1 = L"안녕하세요";
        const wchar_t *str2 = L"안녕히 가십시오";
     
        setlocale(LC_ALL, "en_US.utf8");
        demo(str1, str2, 5);
        demo(str2, str1, 8);
        demo(str1, str2, 2);
    }

    输出:

    First 5 characters of [안녕하세요] precede [안녕히 가십시오]
    First 8 characters of [안녕히 가십시오] follow [안녕하세요]
    First 2 characters of [안녕하세요] equal [안녕히 가십시오]

    参考

    C11标准(ISO/IEC 9899:2011): 7.29.4.4.3 wcsncmp函数(p: 434) C99标准(ISO/IEC 9899:1999): 7.24.4.4.3 wcsncmp函数(p: 380)

    另请参阅

    wcscmp(C95) 比较两个宽字符串(函数)
    wmemcmp(C95) 比较两个数组中的一定数量的宽字符(函数)
    wcscoll(C95) 根据当前语言环境(函数)比较两个宽字符串

    | 针对wcsncmp |的C ++文档

  •   C 语言中文开发手册
  •   本文标题:wcsncmp (Strings) – C 中文开发手册 - Break易站
    转载请保留页面地址:https://www.breakyizhan.com/c-3/28317.html
      微信返利机器人
      免费:淘宝,京东,拼多多优惠券
      腾讯,爱奇艺,优酷的VIP视频免费解析,免费看
      即刻扫描二维码,添加微信机器人!

    发表笔记

    电子邮件地址不会被公开。 必填项已用*标注