cstring 的插入方法,有没有办法让他把汉字也计算成一个字符然后插入啊

解决方案 »

  1.   

    转换成unicode,插入,然后再转回来另外,汉字的第一个字节都是大于0x7f的,可以根据这个判断是否为汉字,这样就不用转换
      

  2.   

    我的意思是说,比方"天a地b君c亲师",当我用cstring 的insert 方法在"君"字后面加个我字,CString str1 ="天地君亲师";
    CString str2="我";
    str1.Insert(4,str2);这样子插入后的结果是 "天地我君亲师"
    但我想要的效果是 "天地君亲我师"
    里面不仅仅是中文,所以也不能*2
      

  3.   

    转成unicode后汉字是不是只计算一个字符
      

  4.   

    ...怎么把str1转成unicode啊...我项目属性里选的是多字节,,这个不能改,因为这个一改,我要改好多东西
      

  5.   

    wchar_t* ChAWTranslator::ChA2W (const char* sa)
    {
    wchar_t* suRet = NULL;
    if(sa)
    {
    int nStrAnsiLen = strlen(sa);
    suRet = new wchar_t[nStrAnsiLen+1];
    if(suRet)
    {
    memset(suRet, 0, (nStrAnsiLen+1)*sizeof(wchar_t));
    MultiByteToWideChar(CP_ACP, 0, sa, -1, suRet, nStrAnsiLen+1);
    }
    }
    return suRet;
    };
      

  6.   

    所有unicode字符都是2个字节的
    多字节转unicode有很多方式
    可以用函数MultiByteToWideChar