首页 > 其他 > 详细

从字符串中提取数

时间:2017-02-25 11:45:01      阅读:153      评论:0      收藏:0      [点我收藏+]
#include <stdio.h>
#include <stdlib.h>
int pow_jh(int x,int y);
int main()
{
    char str[50],*pstr=str;
    gets(str);
    int a[50],g=0,w=0,i=0,number=0,k;//g:多少个整数;w:几位;number:整数
    while((*(pstr+i))!=\0)
    {
        if(*(pstr+i)>=0&&*(pstr+i)<=9)
        {
            w++;
        }
        else
        {
            if(w>0)
            {
                g++;
                k=1;
                while(k<=w)
                {
                    number+=(*(pstr+i-k)-48)*pow_jh(10,k-1);
                    k++;
                }
                a[g-1]=number;
                number=0;
                w=0;
            }

        }
        i++;
    }
    if(w>0)//因为上面的while语句判断条件是不等于‘\0‘,所以当字符串以数字结尾时无法进入while()中输出最后几个数字,所以在while()应再加个if()。
    {
        g++;
        k=1;
                while(k<=w)
                {
                    number+=(*(pstr+i-k)-48)*pow_jh(10,k-1);
                    k++;
                }
        a[g-1]=number;
        number=0;
    }
    for(i=0;i<g;i++)
    {
        printf("%d ",a[i]);
    }
    printf("\n%d",g);


    return 0;
}
int pow_jh(int x,int y)
{
    int i;
    int sum=1;
    if(y==0)
        return 1;
    else
    {
        for(i=0;i<y;i++)
            sum=sum*x;
    }
    return sum;
}

input:

a123x456 17960? 302tab5876

output:

123 456 17960 302 5876
5

 

从字符串中提取数

原文:http://www.cnblogs.com/LuRenJiang/p/6441209.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!