需求:
现有1CSting类型的变量,定义为Csting m_str,有1个char组,定义为char ShowMe[256],另,在showme中,showme[0]=0xf8,showme[1]=0x03,而m_str = “192.168.1.12”,现在需要做的事情就是,将m_str的每一位转换成它的ASCII码,并且存到showme里面,在存的时候,需要在字符的ASCII码前面加上0X,数组的结尾用0x0A表示:
例如:m_str = "0",那么showme应该为:showme[4] = {0XF8,0X03,0X30,0X0A}
m_str = "00",那么showme应该为:showme[5] = {0XF8,0X03,0X30,0X30,0X0A}
m_str = "01",那么showme 应该为:showme[5] = {0XF8,0X03,0X30,0X31,0X0A}
求高手指点详细代码!!!
------解决方案--------------------
先写'{',再用sprintf逐个字符输出,格式字符串用"0X%02X,",把最后一个','改成'}'。
------解决方案--------------------
sprintf(ShowMe+i,"0x%02X",*p++);
这句少了个逗号,i自增也得改下,改成:
- C/C++ code
char *p=m_str; ShowMe[0]='{'; int i=1; while(*p) { sprintf(ShowMe+i,"0x%02X,",*p++); i+=5; } ShowMe[i-1]='}'; ShowMe[i]=0;
------解决方案--------------------
char *p=m_str;
ShowMe[0]='{';
int i=1;
while(*p)
{
sprintf(ShowMe+i,"0x%02X,",*p++);
i+=5;
}
ShowMe[i-1]='}';
ShowMe[i]=0;
------解决方案--------------------
先请问 您的CString是unicode还是多字节字符集?