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

算法! 大家帮忙啊

2012-02-10 
求一个算法!大家帮忙啊!我想求一个算法,这个算法要求像手机里的“提取号码”这个功能。就是从一个文本内容里

求一个算法! 大家帮忙啊!
我想求一个算法,这个算法要求像手机里的“提取号码”这个功能。就是从一个文本内容里面把其中夹杂的一些数字给提取出来,要求这些数字必须是连续三个以上互相紧挨着一块的。   我可以举个例子来具体说明一下要求。
短信内容:“CSDN我遇到一个难题1223789,所以在这里123发表了一个帖子22,希望大家帮忙。”
提取号码:“1223789”,“123”。
“22”是两个连续紧挨着一块的,但是只有三个。所以不必提取出来。
不知这样大家看明白了没有?
希望大家帮小弟一把。   谢谢了!

[解决办法]
每次从字符串中读出三字符,开始判断,如果三个全是数字.

那么开始从三个字符中的第一个位置开始读,一直读到数字结束.

如char *str= "CSDN我遇到一个难题1223789,所以在这里123发表了一个帖子22,希望大家帮忙。 "


int len=(int)strlen(str);
for(int i=0;i <len-3;i++)
{
if(str[i]> = '0 '&&str[i] <= '9 ')
if(str[i+1]> = '0 '&&str[i+1] <= '9 ')
if(str[i+2]> = '0 '&&str[i+2] <= '9 ')
{
while(str[i]> = '0 '&&str[i] <= '9 ')
{
printf( "%c ",str[i]);//打印出数字
i++;
}
}

}

注:上面程序片段,没有测试,只是提供方法.

热点排行