读书人

VC++中的字符串操作,该如何处理

发布时间: 2012-02-25 10:01:47 作者: rapoo

VC++中的字符串操作
需求:

现有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还是多字节字符集?

读书人网 >VC

热点推荐