关于VC中的字符串的解析问题

善古 2010-11-30 05:51:43
我又来问问题了,呵..希望大家理解..

我用的IDE: VS2003 ,基于对话框工程

我把手机短信内容,用CString字符串表示:
包含有字母,数字,汉字还有各种标点符号,

现在我想取CString字符串最后一个字符,我要如何取呢?这个字符有可能是汉字..
然后我取成功后,要判断这个字符是汉字还是其它字符..

请大家帮忙解答一下.谢谢了

...全文
180 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
善古 2010-12-09
  • 打赏
  • 举报
回复
感谢大家的帮助..谢谢.
Eleven 2010-12-03
  • 打赏
  • 举报
回复
UNICODE的话,直接CString::Right(1);多字节的话,可以先转成Unicode编码的,然后再Right(1);
hell_wolf 2010-12-03
  • 打赏
  • 举报
回复
关键是你字符串是按什么编码的,如果是UNICODE,可以直接取最后一个字符,否则需要解析字符串。
baby393 2010-11-30
  • 打赏
  • 举报
回复
LOCALE_SYSTEM_DEFAULT应该改为代码页936的locate更可靠
baby393 2010-11-30
  • 打赏
  • 举报
回复
CString s(_T("ABCDEFG中国"));
LPCTSTR pString = (LPCTSTR);
LPCTSTR pLast = pString + s.GetLength();
LPCTSTR pCh = CharPrev(pString, pLast);
WORD wChType[2] = {0};
int cch = pLast - pCh;
ASSERT(cch <= 2);
VERIFY(GetStringType(LOCALE_SYSTEM_DEFAULT, CT_CTYPE3, pCh, cch, wChType));
if (wChType[0] & C3_IDEOGRAPH)
{
// 汉字
}
baby393 2010-11-30
  • 打赏
  • 举报
回复
判断字符是否是中文或者标点或者数字或者其他可用Windows API GetStringType或者GetStringTypeEx
善古 2010-11-30
  • 打赏
  • 举报
回复
试过了,这个不行,strTemp.Right(1);//是取一个字节
strTemp.Right(2);//才是"你"字
[Quote=引用 1 楼 xiaoc1026 的回复:]

C/C++ code

CString strTemp = "hello1234北京欢迎你";
CString strDest = strTemp.Right(1);
[/Quote]
蒙飞鸿 2010-11-30
  • 打赏
  • 举报
回复
CString str = "你好啊";
TCHAR x = str.GetAt(str.GetLength()-1);
取得CString最后一个字节如上(没测试,大概如此);

想判断是否汉字,在多字节工程环境下,可以用如下方法:
char chText = CString::GetAt(i);
if (chText < 0)
AfxMessageBox("中文");
else
AfxMessageBox("非中文");

UNICODE环境下,用类似思路。
疯狂石头_ 2010-11-30
  • 打赏
  • 举报
回复
判断最后一个的字符是否大于128来判断是否是汉字
见习学术士 2010-11-30
  • 打赏
  • 举报
回复

CString strTemp = "hello1234北京欢迎你";
CString strDest = strTemp.Right(1);

16,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧