c/c++ 數字轉成字串, 字串轉成數字

來源:互聯網
上載者:User

數字轉字串:
用C++的streanstream:

#include <sstream>
#Include <string>
string num2str(double i)
...{
        stringstream ss;
        ss<<i;
        return ss.str();
}


字串轉數字:

int str2num(string s)
 ...{   
        int num;
        stringstream ss(s);
        ss>>num;
        return num;
}


上面方法很簡便, 缺點是處理大量資料轉換速度較慢..
C library中的sprintf, sscanf 相對更快

可以用sprintf函數將數字輸出到一個字元緩衝區中. 從而進行了轉換...
例如:
已知從0點開始的秒數(seconds) ,計算出字串"H:M:S",  其中H是小時, M=分鐘,S=秒

         int H, M, S;
        string time_str;
        H=seconds/3600;
        M=(seconds%3600)/60;
        S=(seconds%3600)%60;
        char ctime[10];
        sprintf(ctime, "%d:%d:%d", H, M, S);             // 將整數轉換成字串
        time_str=ctime;                                                 // 結果 

與sprintf對應的是sscanf函數, 可以將字串轉換成數字

    char    str[] = "15.455";
    int     i;
    float     fp;
    sscanf( str, "%d", &i );         // 將字串轉換成整數   i = 15
    sscanf( str, "%f", &fp );      // 將字串轉換成浮點數 fp = 15.455000
    //列印
    printf( "Integer: = %d ",  i+1 );
    printf( "Real: = %f ",  fp+1 ); 
    return 0;

輸出如下:
Integer: = 16
 Real: = 16.455000

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.