首页 > 用户发贴区 > 编程问题提问区 > 字符串提取问题
2008
11-17

我在用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)

还请高手指点。


字符串提取问题》有 1 条评论

  1. laucenmi 说:

    char a[25][4];
    字符串操作,使用char a[25][5];就好了

    for (i = 0; i < 25; i++, s +=4)
         if(sscanf(s, “%4s”, a[i]) != 1)

     

留下一个回复