1. 程式人生 > >C++中字串string和整數int的互相轉化方式

C++中字串string和整數int的互相轉化方式

Talk is cheap, show me the code.

一、string轉int的方式

  1. 採用最原始的string, 然後按照十進位制的特點進行算術運算得到int,但是這種方式太麻煩,這裡不介紹了。

  2. 採用標準庫中atoi函式。

    string s = "12";
    int a = atoi(s.c_str());

    對於其他型別也都有相應的標準庫函式,比如浮點型atof(),long型atol()等等。

  3. 採用sstream標頭檔案中定義的字串流物件來實現轉換。

    istringstream is("12"); //構造輸入字串流,流的內容初始化為“12”的字串
    int i;
    is >> i; //從is流中讀入一個int整數存入i中

二、int轉string的方式

  1. 採用標準庫中的to_string函式。

    int i = 12;
    cout << std::to_string(i) << endl;

    不需要包含任何標頭檔案,應該是在utility中,但無需包含,直接使用,還定義任何其他內建型別轉為string的過載函式,很方便。

  2. 採用sstream中定義的字串流物件來實現。

    ostringstream os; //構造一個輸出字串流,流內容為空
    int i = 12;
    os << i; //向輸出字串流中輸出int整數i的內容
    cout << os.str() << endl; //利用字串流的str函式獲取流中的內容


    字串流物件的str函式對於istringstream和ostringstream都適用,都可以獲取流中的內容。