天气与日历 切换到窄版

 找回密码
 立即注册
中国膜结构网
十大进口膜材评选 十大国产膜材评选 十大膜结构设计评选 十大膜结构公司评选
查看: 5|回复: 0

CString 获取中文,字母及数字的字节数

[复制链接]
  • TA的每日心情
    开心
    昨天 15:23
  • 签到天数: 69 天

    [LV.6]常住居民II

    410

    主题

    167

    回帖

    2704

    积分

    管理员

    积分
    2704
    发表于 2024-6-22 09:46:18 | 显示全部楼层 |阅读模式
    有时候因为软件显示区域有限,需要限制用户输入字符长度,而中文和数字英文占的位置并不一样宽。而 CString 的自带函数 GetLength() 是获取字符数,一个中文,一个字母或者一个数字都是占一个字符。如果限制只能输出4个汉字,显然用户输入字母或数字就太短了,所以就要取 CString 所占的字节数,汉字占2个字节,字母和数字占一个。

    如下:

    CString text = _T("中国12ab");
    int len1 = text.GetLength();//获取的是字符数量,值为 6
    int len2 = CStringA(text).GetLength();//获取的是字节数量,值为 8

    字符串中的中英文字符问题
    在CString中,中英文字符以及数字字符所占的宽度是不一样的,因此在一些固定长度的场景中要分开处理,为此需要将字符串的中英文以及数字字符区分开来。可以使用

    CStringA(cut).GetLength();//其中的cut为CString对象
    来获得字符串所占的字节数,中文占两个字节而英文及数字占一个字节,因此如果上述获得数值与

    cut.GetLength();
    获得的数值不是两倍的关系,则证明字符串中存在数字或者英文字符。而如果是相等关系则证明字符串为纯英文和数字。

     

     

     

     

    CString 获取中文,字母及数字的字节数
    中国膜结构网打造全中国最好的膜结构综合平台 ,统一协调膜结构设计,膜结构施工,膜材采购,膜材定制,膜结构预算全方位服务。 中国空间膜结构协会合作单位。
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    QQ|Archiver|手机版|中国膜结构网|中国膜结构协会|进口膜材|国产膜材|ETFE|PVDF|PTFE|设计|施工|安装|车棚|看台|污水池|

    GMT+8, 2024-7-1 05:14 , Processed in 0.058201 second(s), 22 queries .

    Powered by Discuz! X3.5

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表