关于在MFC中处理字符串的问题

来源:百度知道 编辑:UC知道 时间:2024/06/20 12:08:05
用什么方法可以知道一个字符串中的字符是一个汉字和一个字母?
假如我定义了一个
CString st1;
st1="Visual C++ 可视化编程 6.0";
我做程序想按退格健一个字一个字的删除,当到汉字的时候要按一两下退格才能删除一个汉字,并且当按一下后再输入就是乱码了,请问下怎么样按一下就能删除一个字符(包括汉字)?
用CharNext()和CharPrev()这两个函数可不可以?

判断st1.GetAt(i)是否大于等于128,大于等于128时就是汉字,小于128是即为ASCII

因为标准ASCII码,只用了一个字节的最低7位,而汉字,韩日文等双字符文字用了8位。

你删除前先做判断,是汉字就退两个格

补充:CharNext()和CharPrev()当然也可以了,不过这两个是API函数是针对char *类型的。你既然用CString 那当然还是用GetAt()最方便了。

取一个字符,如果等于0x00是结束符,大于0x80就是汉字,否则就是ASICC字符。

for(i=0;i<10;i++)