我有个CString变量str,它的内容可能是英文字符也可能是汉字,我怎么可以得到它的实际长度。
例:
   str="abc"或str="中国人"
   希望得到int i = str的长度(3或6)
   如果str="abc",则i=3;
   如果str="中国人",则i=6;
   (在执行得到长度的过程中不知道str中内容是什么)

解决方案 »

  1.   

    int len = str.GetLength();
      

  2.   

    我就是这么写的,可是是中文时返回的不对
    例:
      str="中国人";
      int i=str.getlength();
      则i=3所以我才发这个帖子问的
      

  3.   

    将CString转换为宽字符格式,使得不管中英文都用2个字节表示,就很容易得到字符串中的字数了。
      

  4.   

    happyparrot(快乐鹦鹉)请问我该如何做?
      

  5.   

    如果str="中国人",则i=6;要想达到此目的就不能使用Unicode编译
      

  6.   

    是的,我使用了Unicode编译,但是我需要使用啊,有没有其他方法可以得到正确的长度啊?
    谢谢!
      

  7.   

    CClientDC dc(this); CString sTextWord; CSize cSize; cSize = dc.GetTextExtent(m_strBaseWord[m_BaseWordID].TextWord, m_strBaseWord[m_BaseWordID].TextWord.GetLength()); 
    试试