码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • C++ Reference: Standard C++ Library reference: C Library: cwchar: mbrlen


    C++官网参考链接:https://cplusplus.com/reference/cwchar/mbrlen/

    函数 

    mbrlen
    size_t mbrlen (const char* pmb, size_t max, mbstate_t* ps);
    获取多字节字符的长度
    返回pmb所指向的多字节字符的大小,最多检查max个字节数量。
    该函数使用(并更新)由ps描述的移位状态。如果ps是空指针,则该函数使用自己的内部移位状态,只有在必要时调用该函数才能更改该状态。
    使用空指针作为pmb调用函数将重置移位状态(并忽略形参max)。
    此函数的行为取决于所选C语言环境(C locale)的LC_CTYPE类别。
    这是mblen()的可重新启动版本。

    形参 
    pmb
    指向多字节字符的第一个字节的指针。
    或者,可以用空指针调用函数,在这种情况下,函数会将移位状态(ps或它自己的内部状态)重置为初始状态并返回0。
    max 
    要检查的最大字节数量。
    宏常量MB_CUR_MAX定义了在当前语言环境下可以形成多字节字符的最大字节数量。
    size_t是无符号整型。
    ps
    指向定义转换状态的mbstate_t对象的指针。

    返回值
    如果pmb指向空字符,或者pmb是空指针,则函数返回0。
    否则,如果pmb指向的最多max个字符构成有效的多字节字符,则函数返回该多字节字符的字节大小。
    否则,如果最多max个字符不能构成有效的多字节字符,则函数返回(size_t)-1并将errno设置为EILSEQ。
    否则,如果max个字符构成了一个不完整(但可能有效)的多字节字符,则函数返回(size_t)-2。
    注意,size_t是无符号整型,因此返回的值都不可能小于0。

    用例
    /* mbrlen example */
    #include
    #include
    #include

    void splitmb (const char* pt, size_t max)
    {
      size_t length;
      wchar_t dest;
      mbstate_t mbs;
      int i;

      mbrlen (NULL,0,&mbs);  /* initialize state */

      while (max>0) {
        length = mbrlen (pt, max, &mbs);
        if ((length==0)||(length>max)) break;
        putchar ('[');
        for (i=0; i     putchar (']');
        max-=length;
      }
    }

    int main()
    {
      const char str [] = "test string";

      splitmb (str,sizeof(str));

      return 0;
    } 
    splitmb函数将一个多字节序列分割为组成每个字符的字节组。
    该示例在"C"语言环境中使用一个普通字符串,但该函数支持支持多字节字符串的语言环境。
    输出:

  • 相关阅读:
    streamlit学生成绩展示平台
    vue+django+python办公耗材网上商城采购库存管理系统
    问题 R: 胜利大逃亡(HUST)
    π221N31 3.0kVrms 超低功耗 兼容I2C隔离双向通信 隔离器完美代替Si8602AB-AS
    JS(javascript)面试题 7点一次过 => 必会之八股文
    最短路径专题3 最短距离-多边权
    11.应用层数据传输格式/端口号-bite
    开源社区ECE:Elastic认证考试复盘总结134贴
    练习:注册页面
    【MQTT基础篇(一)】MQTT介绍
  • 原文地址:https://blog.csdn.net/weixin_40186813/article/details/127492367
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号