将 CString str=_T("3131313032");转换成 str=_T("12202");

解决方案 »

  1.   


    str.Format(_T("%d/n"),12202);
      

  2.   

    int index = -1;
    while(index = str.Find('3') >= 0)
    {
        str.Delete(index);
    }
      

  3.   

    我上面说的问题只是给大家具个例子, _T("313233") 都是ASCII码的16进制,他们在内存里存储的形式是 33 00,31 00,33 00 ,32 00 我想让他们改成内存的存储形式为 31 00,32 00,33 00。转换过来就是_T("123");
     
      

  4.   

    #include <iostream>int _tmain(int argc, _TCHAR* argv[])
    {
    char _s[100]="300031003200\0";
    char str[4];
    char a;
    for(int j=0;j<100&&_s[j]!='\0';j=j+4)
    {
    for(int k=0;k<4;k++)
    {
    str[k]=_s[j+k];
    }
    a=atoi(str)/100-30+'0';
    std::cout<<a;
    }
    std::cin>>a;
    return 0;
    }
      

  5.   

    什么意思?是不是 31 31 31 30 32 是16进制ASCII码对应的字符?但是应是 11102 才对。
      

  6.   

    ASCII码转字符串 很多方法 
      

  7.   

    我上面说的问题只是给大家具个例子, _T("313233") 都是ASCII码的16进制,他们在内存里存储的形式是 33 00,31 00,33 00 ,32 00 33 00,33 00  我想让他们改成内存的存储形式为 31 00,32 00,33 00。转换过来就是_T("123");是所有的字符串型16进制ASCII码转换
      

  8.   

    CString str=_T("3131313032");
    CString dst;
    TCHAR buff[2];
    buff[1]=0;
    int c=0;
    int n=str.GetLength();
    for (int i=0;i<n;i+=2)
    {
    swscanf(str.Mid(i,2),_T("%x"),&c);
    swprintf(buff,_T("%c"),c);
    dst+=buff;
    }
      

  9.   

    CString str=_T("3131313032");
    str.Replace(_T("3"),_T(""));
      

  10.   

    CString strHex = _T("3131313032");
    CString strDst = _T("");
    CString str = _T("");
    int c = 0;
    for(int i=0; i<strHex.GetLength(); i+=2)
    {
        c = _tcstoul(strHex.Mid(i,2), NULL, 16);
        str.Fotmat(_T("%c"), c);
        strDst += str;
    }MessageBox(strDst); // 11102
      

  11.   

    谢谢各位。如果在字符串里存在汉字的编码怎么办。例如, CString tmp=_T("313233C8CB"); 其中C8CB到一起为“人”;
      

  12.   

    看来我的汉语不过关哦,呵呵 CString tmp =_T("313233c8cb")里面的31,32,33,和c8cb都是AScII编码的16进制,在ASCII表里 ‘31’对应的数据是‘1’‘人’对应的编码为‘c8cb’。我想把tmp转换成 tmpresult=_T("123人"); 
      

  13.   


    逐个_wtoi,转换为TCHAR后,向一个CString追加