首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

怎么解决

2012-02-13 
如何解决?标准C中有一个字符串如:551+553+667:670+722当有:时应取成(667,668,669,670)最后得出以下列如:55

如何解决?
标准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;

}

热点排行