如何从含有中英文特殊符号等的字符串中得到我想要长度的字符呢? 
 如字符串 “中国abc1234国” 中有11个字符,我要得到前4字符,也就是“中国ab”,那应该这样得到呢?
  请高手指点 谢谢了

解决方案 »

  1.   

    CString csText = _T("中国abc1234国");
    CString csTarget = csTest.Left(4);
      

  2.   

    在UNICODE下,用1楼的:
    CString csText = _T("中国abc1234国"); 
    CString csTarget = csTest.Left(4);在ANSI下,用2楼的:
    自已写个函数吧,对字符串按字节进行扫描,大于127的就是中文,所以一次就要取两个字节,小于等于127的就是英文取一个字节。还有一种方法,将字符串转成宽字符,这样无论是英文或中文都占两个字节,并且有现成的取子串函数。楼主说有11个字符,说明楼主在UNICODE下。
      

  3.   

    更正下:刚刚举例的时候少打了个字符。
        中国abc1234中国   这是11个字符
        中国abc1234国     这是10个字符
      1楼说的是取字节,我要的是字的个数
      

  4.   


    UNICODE下,汉字、字符都占二个字节,GetLength()就是字的个数。
      

  5.   

    对这些编码格式有点迷糊。。楼主看一下:
    怎样把Unicode代码转换成中文字符什么是宽字符?