有效資訊格式為:<013|B2|C3|D4|E5|F6C><A1B2C3D4> 其中013|B2|C3|D4|E5| 使用 符號分割出來的前兩位字母或數字及其組合構成密鑰如下( 0x01,0xB2,0xC3,0xD4,0xE5,0xF6 ),<A1B2C3D4>截取待用!!!!用C語言該怎么實作,

有沒有大佬幫忙解決一下!!!小弟,跪謝!!!


uj5u.com熱心網友回復:
多次呼叫分割函式即可.uj5u.com熱心網友回復:
單次分割會啊,但多次就不知道怎么寫了,C語言學的不是太好哎,還請賜教!!!
uj5u.com熱心網友回復:
大佬我來了!
//有效資訊格式為:<013|B2|C3|D4|E5|F6C><A1B2C3D4>
//其中013|B2|C3|D4|E5| 使用 符號分割出來的前兩位字母或數字及其組合構成密鑰如下
//( 0x01,0xB2,0xC3,0xD4,0xE5,0xF6 ),<A1B2C3D4>截取待用!!!!用C語言該怎么實作,
//有沒有大佬幫忙解決一下!!!小弟,跪謝!!!
#include <stdio.h>
unsigned char key[6];
int buf[6];
char tail[11];
char *s="<013|B2|C3|D4|E5|F6C><A1B2C3D4>";
int i;
int main() {
sscanf(s,"<%2X%*c|%2X|%2X|%2X|%2X|%2X%*c%*c%10s",
&buf[0],
&buf[1],
&buf[2],
&buf[3],
&buf[4],
&buf[5],
tail);
for (i=0;i<6;i++) key[i]=(unsigned char)buf[i];
for (i=0;i<6;i++) printf("0x%02X ",key[i]);
printf("\n%s\n",tail);
return 0;
}
//0x01 0xB2 0xC3 0xD4 0xE5 0xF6
//<A1B2C3D4>
//
uj5u.com熱心網友回復:
另供參考:#include <stdio.h>
char s[]="123 ab 4";
char *p;
int v,n,k;
void main() {
p=s;
while (1) {
k=sscanf(p,"%d%n",&v,&n);
printf("k,v,n=%d,%d,%d\n",k,v,n);
if (1==k) {
p+=n;
} else if (0==k) {
printf("skip char[%c]\n",p[0]);
p++;
} else {//EOF==k
break;
}
}
printf("End.\n");
}
//k,v,n=1,123,3
//k,v,n=0,123,3
//skip char[ ]
//k,v,n=0,123,3
//skip char[a]
//k,v,n=0,123,3
//skip char[b]
//k,v,n=1,4,2
//k,v,n=-1,4,2
//End.
uj5u.com熱心網友回復:
有個strtok函式了解下轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/247362.html
標籤:C語言
上一篇:matlab反正切值域問題
