如何解决?
标准C中有一个字符串如:551+553+667:670+722
当有:时应取成(667,668,669,670)
最后得出以下列如:
551
553
667
668
669
670
722
如何解决?
[解决办法]
。。。
一直没有看懂,那再改下好了。。。其实很简单
#include <stdio.h>
#include <stdlib.h>
#define is_number( ch ) ( (ch) > = '0 ' && (ch) <= '9 ' )
#define is_connector( ch ) ( (ch) == ': ' )
char* buf = "551+553+667:670+722:750+780 ";
int main(int argc, char *argv[])
{
char* p = buf;
int pre = 0, out = 0;
/* ...p指向目的buf */
while( *p != '\0 ' )
{
if( is_number( *p ) )
{
out = out * 10 + *p - '0 ';
}
else if( is_connector( *p ) )
{
pre = out;
out = 0;
}
else
{
if( pre != 0 )
{
while( pre++ < out ) printf( "%d\n ", pre );
pre = 0;
}
else
printf( "%d\n ", out );
out = 0;
}
p++;
}
if( out != 0 )
printf( "%d\n ", out );
system( "PAUSE ");
return 0;
}