从一个文本框中读入一个字符串,比如字符串为m_IN="slsnake"
我想用RSA对这个字符串进行加密,该怎么转换类型?
如何把这个字符串转换为相对应的16进制值?
解密的时候如何把16进制值转换为相对应的字母输出到一个文本框?
我对这个字符的转换感到头大,还请各位帮忙,在线等。
先谢了。

解决方案 »

  1.   

    printf("%x",c);
    c是一个字符。
      

  2.   

    CString str = GetDlgItem(IDC_EDIT1)->GetWindowText();
    BYTE * pByte = new BYTE[str.GetLength];
    memcpy(pByte, str.GetBuffer(), str.GetLength);
    str.ReleaseBuffer();
    现在就可以使用pByte指针了如果你把字符串转换成为char* z也可以通过直接的char*到BYTE*的强制转换来使用。
    需要注意的是char*最后一个元素是‘\0’
      

  3.   

    sscanf能从一个字符传中提取出字符,数字等。
    sprintf相反。
      

  4.   

    honestly speaking, i don't know... anyway, UP!
      

  5.   

    强行类型转换就是。
    比如: char a = 'A'; //a的ASCII码为十六进制的“0x0061”;
     你再早请一个 int i; i = (int) a; //此时的i 就是十六进制的“0x0061”你想加密中管进行相应的加减乘除就是了。最后再把它转回来,a = (char)i; 当然 i 要取m模不能大于“0x00ff”
      

  6.   

    用 BYTE 强制进行类型转换,可以知道 typedef unsigned char BYTE; 这样的转换是可行的。
      

  7.   

    happy__888
    我用你的方法出现了奇怪的错误,我继续调试。
     enoloo(行者无疆)
    是能取出来,但是没有转换
    showjancn(难得一剑)(CN) 
    这个方法我也想到了,对单个字符有效,字符串就不行了fzd999(花差花差) 
    你说的方法和happy__888是相同的吗?
      

  8.   

    什么错误? 可否贴出调试代码?你的要求是ansi字符转换成16进制吗? 还是unicode?有时候处理不好这会产生错误。