在一个文本框里输入 12 23 33 45 ....等一串数字,中间有空格,当单击转换按钮时,在另一个文本框里显示对应的16进制,
c 17 21 2D......
这个问题怎么解决.能否给出具体实现的代码,谢谢了!

解决方案 »

  1.   

    字符串解析,然后itoa,在用sprintf格式化。
      

  2.   

    CString str1="11 12 13 14 15 16 17 18 19";
    CString str2;
    char strbuf[8];
    int len=str1.GetLength();
    for(int i=0;i<len;i+=3)
    {
    ;
    int x=atoi(str1.Mid(i,2));
    sprintf(strbuf,"%02X ",x);
    str2+=strbuf;
    }
    AfxMessageBox(str2);
      

  3.   

    每个都相隔一个空格么?
    m_Edit.GetWindowText(str);
    int len = str.GetLength();
    CString str2;
    for(int i = 0; i <= len/3 ; i++)
    {
       CString strmin;
       CString strtemp;
       char a;
       strmin = str.Mid(3*i,2);
        a = atoi(strmin.GetBuffer());
       strtemp.Format("%02x",a);
       str2 += strtemp;
       str2 += " "; 
    }
    m_Edit2.SetWindowText(str2);
      

  4.   

    CString str1="12 34 445 666 4433 44";
    CString str2;
    CString str3;
    int i =0;
    while(AfxExtractSubString(str2, str1, i++, ' '))
    {
       int nTemp = atoi(str2);
       CString szTemp;
       szTemp.Format("%x", nTemp);
       str3 += strTemp + " ";
    }
    AfxMessageBox(str3);