字符串转换为字符数组
大家好,有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;
}