|
有时候因为软件显示区域有限,需要限制用户输入字符长度,而中文和数字英文占的位置并不一样宽。而 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();
获得的数值不是两倍的关系,则证明字符串中存在数字或者英文字符。而如果是相等关系则证明字符串为纯英文和数字。 |
|