我在用RS232通信后收回来的是一个长的”@00WD0000010002000300050006…000A…000F……0025*\r”,字符串间是一串4位的16进制数据,从“0001”到“0025”共有25个数据,我现在是想把这个字符串里面的数据提取出来,从字符串的第7位开始,然后4位4位(4位字符)地提取,如第一个提取出来的是“0001”,第二个是“0002”直到第25个“0025”到*就结束,因为每4位的数据是16进制的数据。
我编了一个下面程序,不知道哪错了,就是出不了结果:
int i;
char [25][4];
char *s=”@00WD0000010002000300050006…000A…000F……0025*\r”;
s+=7;
for (i = 0; i < 25; i++, s +=4)
if (sscanf(s, “%4s”, a) != 1)
还请高手指点。
>> 本文固定链接: http://www.vcgood.com/archives/2915
>> 转载请注明: zhangyanjin 2008年11月17日 于 C语言帝国 发表
char a[25][4];
字符串操作,使用char a[25][5];就好了
for (i = 0; i < 25; i++, s +=4)
if(sscanf(s, “%4s”, a[i]) != 1)