• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            笑看風云淡

            寵辱不驚,看庭前花開花落;去留無意,望天空云卷云舒
            posts - 96, comments - 48, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

            從字符串中提取數字

            Posted on 2009-09-08 11:28 天之驕子 閱讀(12518) 評論(1)  編輯 收藏 引用
            下面程序將字符串中的連續數字提取出來,并存放到一維數組中。比如說一個字符串:"a284twx234   je3432",把“284“,“234”,“3432”這3個連續數字提取出來,分別存放到a[0],a[1].a[2]中。
            #include    <stdio.h>
            #include    
            <string.h>
            #include    
            <ctype.h>

            int main()
            {
                
            char str[] = "a284twx234   je3432";
                
            int len=strlen(str);
                
            char buf[100];
                
            int a[3];
                
                
            int i = 0;
                
            while ( str[i] != '\0' )
                
            {
                    
            if (isdigit(str[i]))
                        buf[i] 
            = str[i];
                    
            else buf[i] = ' ';
                    
            ++i;
                }

                buf[i] 
            = '\0';
                
                sscanf (buf,
            "%d %d %d"&a[0], &a[1], &a[2]);
                printf (
            "%d %d %d\n", a[0], a[1], a[2]);
                
                
            return 0;
            }



            ////////////////////////////////////////
            //實現了把一個字符串中的第一次出現的有效數字
            //提取出來比如:abge_+*123.456dfsdf
            //程序運行的結果應該是:123.456
            ///////////////////////////////////////

            #include
            <iostream>
            #include
            <cstring>
            #include
            <cstdio>

            #define MAXLEN 50 //定義字符數組的上屆
            using namespace std;

            int main()
            {
                
            char numstr[MAXLEN] = "#define MAX_MODE        20 //方式個數";
                
            int flag=1,i=0,j=0,h=0;
                
            double m=0,sum=0,n=0;
                
            //cout<<"輸入一個字符串:";
                
            //cin>>numstr;

                cout
            <<numstr;

                
            // 1.剔除+-或者0~9前面的非法字符;
                for(;i<strlen(numstr);i++)
                
            {
                    
            if((numstr[i]<='9' && numstr[i]>='0')
                        
            || numstr[i]=='+' || numstr[i]=='-')
                        
            break;
                    
            else
                        j
            ++;
                }

                
            if(numstr[j]=='-')     //判斷負號,為最后的輸出做準備
                    flag=-1;
                
            if(numstr[j]=='+' || numstr[j]=='-')   //讓j指向第一個數字元素(剔除+-號)
                    j++;
                i
            =j;          //讓i也指向第一個數字元素

                
            //2.剔除數字元素后面的非法字符;
                h=j;
                
            for(;i<strlen(numstr);i++)
                
            {
                    
            if( (numstr[i]<='9' && numstr[i]>='0')
                        
            ||numstr[i]=='.')
                        h
            ++;
                    
            else
                        
            break;
                }

                h
            -=1;

                
            //3.計算整數 部分
                for( ; numstr[j]!='.' && j<=h; j++)     //整數部分計算的實現
                {
                    n
            =n*10+numstr[j]-'0';
                }


                
            //4.計算小數部分 
                if(j<&& numstr[h]!='.')
                
            {
                    
            for(j++;j<=h;h--)    //讓j指向第一個數字字符,從最后一個字符元素往前算
                    {                          //小數部分,直到h=j時停止。
                        m=m*0.1+numstr[h]-'0';
                    }

                    m
            *=0.1;
                }

                
                
            //5.合成數字
                sum=n+m;
                sum
            =sum*flag;
                cout
            <<"輸出轉換字符結果:";
                cout
            <<sum<<endl;
                printf(
            "printf輸出的結果是: %lf",sum);

                
            return 0;
            }

            //將string類對象中的數字字符提取出來
            int CFileIndexDialog::string2int(CString str)
            {
                
            int length;
                
            int i;
                TCHAR temp2[
            15];
                lstrcpy(temp2,str);    
            //copies a string to a buffer

                TCHAR temp[
            4];
                
            int count;
                count
            =0;
                length
            =strlen(temp2);    //length保存了字符數組temp2的長度
                for(i=0;i<length;i++)
                
            {
                    
            if ((temp2[i]<='9')&&(temp2[i]>='0')) 
                    
            {
                        temp[count]
            =temp2[i];
                        count
            ++;
                    }

                }

                
            return (::atoi(temp));
            }

            Feedback

            # re: 從字符串中提取數字  回復  更多評論   

            2014-04-28 23:15 by 30256323036632
            ';.[';;;';louhikjkik55445215824154545565
            久久无码AV中文出轨人妻| 久久99精品国产麻豆宅宅| 国产Av激情久久无码天堂| 精品无码久久久久国产| 99国产精品久久| 亚洲精品乱码久久久久久不卡| 狠狠色婷婷久久综合频道日韩| 777米奇久久最新地址| 亚洲国产精品无码久久青草| 久久综合噜噜激激的五月天| 久久91精品综合国产首页| 熟妇人妻久久中文字幕| 国产欧美一区二区久久| 久久国产免费直播| 国产精品久久久久一区二区三区 | 精品无码久久久久国产动漫3d | 欧美精品福利视频一区二区三区久久久精品 | 麻豆成人久久精品二区三区免费| 久久免费国产精品一区二区| 久久久久久伊人高潮影院| 国产精品久久久久久久久久免费| 国产午夜免费高清久久影院| 久久综合伊人77777麻豆| 麻豆精品久久久一区二区| 久久婷婷国产综合精品| 精品久久久中文字幕人妻| 狠狠精品久久久无码中文字幕| 久久精品成人免费网站| 久久久亚洲欧洲日产国码二区| 一本色综合网久久| 久久婷婷五月综合色奶水99啪| 国产精品熟女福利久久AV| 99久久精品国产综合一区| 国产99精品久久| 777久久精品一区二区三区无码 | 无码日韩人妻精品久久蜜桃| 综合久久精品色| 精品无码久久久久国产动漫3d| 国产成人无码精品久久久性色| 亚洲精品无码久久久影院相关影片| 久久免费视频1|