关于汉字
存入CString里的字符串怎样才可以判断某一个字符占一位,某个字符占两位,
或者有简单的办法把该字符串按字分开,不管是汉字还是英文,
问题点数:30、回复次数:7Top
1 楼macrogu()回复于 2002-03-21 16:14:16 得分 0
if (buff[i] < 31 || buff[i] > 127)//汉字
{
//占两位
}
else
{
//英文
}
Top
2 楼naile()回复于 2002-03-21 16:15:02 得分 0
半角字符ASCIIC码范围在0~254之间,不是这个范围之内的字符,都是与另一个不在此范围内的字符组成一个全角字符.Top
3 楼scxy(小熊)回复于 2002-03-21 16:17:59 得分 0
请问buff是char的数组吗Top
4 楼scxy(小熊)回复于 2002-03-21 16:20:39 得分 0
谁能详细讲解一下一个CString类型的字符串分割为单个字符的局图例子Top
5 楼lizmei001(暗黑)回复于 2002-03-21 16:26:34 得分 10
char *p = data;//有汉字的数组
while(*p)
{
if (*p&0x80) ++p;//是个汉字
++ p;
}
给分,我要分~~~~~~~~~~~~~``Top
6 楼kaitty(阿凯)回复于 2002-03-21 16:31:23 得分 10
BOOL Word::IsHZ(char* sIn)
{
if(((unsigned char)(sIn[0])>=0xa1)&&((unsigned char)(sIn[0])<=0xfe)&&
((unsigned char)(sIn[1])>=0xa1)&&((unsigned char)(sIn[1])<=0xfe))
return true;
return false;
}Top
7 楼prometheusphinx(白日梦)回复于 2002-03-21 16:38:00 得分 10
void CListDlg::OnOK()
{
CString s = "saf夺asfd硒夺蝇喵呀#543623a感想sk";
int i = 0;
while (i < s.GetLength())
{
if (IsDBCSLeadByte(s[i]))
{
m_List.AddString(s.Mid(i, 2));
i++;
}
else
m_List.AddString(s.Mid(i, 1));
i++;
}
}Top




