首页 > 用户发贴区 > 编程问题提问区 > 长字符串提取的问题
2008
10-22

长字符串提取的问题

我收回来的是一个长的字符串“@00RD0001000200030004…0025*\r”,字符串间是一串4位的数据,从“0001”到“0025”共有25个数据,我现在是想把这个字符串里面的数据提取出来,从字符串的第5个开始,然后4个4个地提取,如第一个提取出来的是“0001”,第二个是“0002”直到第25个“0025”到*就结束。
请教高手,有什么好的方法或建议?在下感激不尽!!!


长字符串提取的问题》有 7 条评论

  1. Perfect 说:

    你可以试试sscanf()函数

  2. zhangyanjin 说:

    先谢了!!!我试下先。

  3. zhangyanjin 说:
    我昨天用sscanf试了一下午,还是不行,自己笨,又刚刚接触C语言,能不能帮我就上面那个字符串编一个小程序出来,在下感激不尽!!!
  4. xiaoli112 说:

       #include<stdio.h>

        viod main()

        {int i,j;

         char str[];

         str[]=”@00R—0025*\r”        (这里要自己把数字输入吗?)

         for(i=5;i<100;i++)

           for(j=i;j<i+3;j++)

           {printf(“%c”,str[]);

            putchar(“\n”);

            }

         }   

     你自己试试吧!看看能不能运行得如你所愿?以后把题写清楚点吧!

  5. zhangyanjin 说:

    谢谢xiaoli了!这个问题刚刚解决了。以后有问题一定把问题表达清楚。

  6. xiaoli112 说:

    那我的程序是否可用呢!?

    如不可用,请原谅!

    待你回复!

     

  7. zhangyanjin 说:

    s为长字符串,

    s+=5

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

    我觉得这个简洁好用就试了,不好意思,你的我没试。

留下一个回复