首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

字符串转换为字符数组解决方案

2013-12-19 
字符串转换为字符数组大家好,有c操作问题问下,问下大家,谢谢。char src[50]0x02,0x22,0x32,0xAA,0x26,0xF

字符串转换为字符数组
大家好,有c操作问题问下,问下大家,谢谢。
char src[50]="0x02,0x22,0x32,0xAA,0x26,0xFB,0x22,0x62,0xA2,0x22,0x02";
unsigned char dst[12];
怎么复制src到dst呢?使dest[12]={0x02,0x22,0x32,0xAA,0x26,0xFB,0x22,0x62,0xA2,0x22,0x02};
[解决办法]
直接贴代码:


int dosomething()
{
char src[256] = "0x02,0x22,0x32,0xAA,0x26,0xFB,0x22,0x62,0xA2,0x22,0x02";
unsigned char dst[12] = {};

char* p = src;
unsigned char val,c;
int status = 0;
int count = 0;

for (status = 0; *p && count<12; p++)
{
if (status == 0)
{
if (*p == '0')
{
status = 1;
}
}
else if (status == 1)
{
if (*p == 'x')
{
status = 2;
}else
{
status = 0;
}
}
else if (status == 2 
[解决办法]
 status == 3)
{
status++;
switch(*p)
{
case '9':
case '8':
case '7':
case '6':
case '5':
case '4':
case '3':
case '2':
case '1':
case '0':
c = *p - '0';
break;

case 'f':
case 'e':
case 'd':
case 'c':
case 'b':
case 'a':
c = *p - 'a' + 10;
break;
case 'F':
case 'E':
case 'D':
case 'C':
case 'B':
case 'A':
c = *p - 'A' + 10;
break;
default:
c = 16;
break;
}
if (c < 16)
{
val = (val << 4) 
[解决办法]
 (c & 0xF);
}else{
status = 0;
}
if (status == 4)
{
dst[count++] = val;
status = 0;
}
}
else
{
status = 0;
}
}
return 0;
}

热点排行