C语言新手求教

yuyang804 2013-03-19 09:50:08
如何从一组字符串中提取出小数,带小数点的。比如输入wef4.998ueu输出4.998.
...全文
119 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuyang804 2013-03-20
  • 打赏
  • 举报
回复
很有帮助,谢谢啦!
赵4老师 2013-03-19
  • 打赏
  • 举报
回复
//如何从一组字符串中提取出小数,带小数点的。比如输入wef4.998ueu输出4.998.
#include <stdio.h>
char s[]="ef4.998ue1.2u";
char *p;
int n,k;
double v;
void main() {
    p=s;
    while (1) {
        k=sscanf(p,"%lf%n",&v,&n);
        printf("k,v,n=%d,%lg,%d\n",k,v,n);
        if (1==k) {
            p+=n;
        } else if (0==k) {
            printf("skip char[%c]\n",p[0]);
            p++;
        } else {//EOF==k
            break;
        }
    }
    printf("End.\n");
}
//k,v,n=0,0,0
//skip char[e]
//k,v,n=0,0,0
//skip char[f]
//k,v,n=1,4.998,5
//k,v,n=0,4.998,5
//skip char[u]
//k,v,n=0,4.998,5
//skip char[e]
//k,v,n=1,1.2,3
//k,v,n=0,1.2,3
//skip char[u]
//k,v,n=-1,1.2,3
//End.

图灵狗 2013-03-19
  • 打赏
  • 举报
回复
参考这篇(http://qnit2008.blog.tianya.cn/blogger/post_show.asp?BlogID=1465104&PostID=25767412&idWriter=0&Key=0)文章的做法。
qwer_boo 2013-03-19
  • 打赏
  • 举报
回复
先找到'.',再从点两边开始找数字

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧