程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> C++裡的int 和string類型相互轉換

C++裡的int 和string類型相互轉換

編輯:C++入門知識

  C++不像Java和C#一樣在進行數據類型轉換時直接調用一些類方法就可以了,使用起來很簡單。

  一個很簡單的例子就是string str=“D:\\”+1+“.txt”;這在Java或者C#裡面是可以自動拆箱和包

箱就可以了,但是在C++裡面是不可以的。當然這只有一個文件還好,但是當我們要使用for循環去遍

厲一個文件夾下的1,2,3...命名的文件時或許就有點麻煩了。由於我自己碰到過這種情況,所以這裡寫

寫幾種方法。或許不是最好的方法,但是權當練練筆了,如果你發現錯誤或者有更好的方法歡迎指教。

  方法一:這個方法比較笨就是自己寫個函數如string getString(int value){},實現很簡單就不寫了。

通過一個個判斷然後進行字符連接,最後把字符返回即可。類似的int getInt(string str){},可以把string

換為int。

  方法二:就是使用一些C++的文件流或者C的函數:

如下:

/*
C++ String 和int的相互轉換
*/
#include<iostream>
#include<sstream>
using namespace std;
int main(){
    /*
    使用C標准庫裡面的atoi
    */
    //string to int
    string str="123";
    int value=std::atoi(str.c_str());
    cout<<"string to int value:"<<value<<endl;
    /*
    C++標准庫裡面,使用stringstream:
    (stringstream 可以用於各種數據類型之間的轉換)
    */
    std::stringstream sstr;
    //string to int
    sstr<<"520";
    int value2;
    sstr>>value2;
    cout<<"string to int value2: "<<value2<<endl;
    //int to string
    int value3=125;
    std::stringstream sstr2;
    sstr2<<value3;
    string str2;
    sstr2>>str2;
    cout<<"int to string str2:"<<str2<<endl;
    string filepath="D:\\"+str2+".txt";
    cout<<filepath<<endl;
}

下面是結果截圖:

 

 

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved