使用C++ string實現字元串和數字的互轉

C++是一門非常強大的編程語言,可以支持各種各樣的數據類型和演算法。在實際開發中,我們可能會需要將一個字元串轉換為數字,或者將數字轉換為字元串。C++標準庫提供了一些函數可以實現這種轉換,而使用C++ string作為中間數據類型,可以更加方便地進行轉換操作,本文將介紹如何使用C++ string實現字元串和數字的互轉。

一、將字元串轉換為數字

在C++中,我們可以使用標準庫中的函數stoi將一個字元串轉換為整數。此函數的原型如下:

int stoi(const string& str, size_t* pos = 0, int base = 10);

其中,str是需要轉換的字元串;pos是一個指針,用於指示轉換過程中哪些字元無法被轉換為數字;base表示數字的進位,可以是2、8、10或16。

例如,下面的代碼可以將字元串"123"轉換為整數123

string str = "123";
int num = stoi(str);
cout << num << endl; // 輸出123

如果字元串無法被轉換成數字,stoi函數會拋出一個異常invalid_argument,我們可以使用try-catch機制來捕獲這個異常,如下所示:

string str = "hello";
try{
    int num = stoi(str);
    cout << num << endl;
}catch(invalid_argument& e){
    cout << "轉換失敗" << endl;
}

二、將數字轉換為字元串

如果我們需要將一個數字轉換為字元串,可以使用標準庫中的to_string函數。此函數的原型如下:

string to_string(int val);

其中,val是需要轉換的數字。

例如,下面的代碼可以將整數123轉換為字元串"123"

int num = 123;
string str = to_string(num);
cout << str << endl; // 輸出123

三、其他實用技巧

除了上述介紹的基本用法,下面列舉一些使用C++ string進行數字和字元串轉換時的實用技巧:

1. 將字元串轉換為浮點數

如果需要將一個字元串轉換為浮點數,可以使用標準庫中的stof函數,其用法與stoi類似。例如:

string str = "3.14";
float num = stof(str);
cout << num << endl; // 輸出3.14

2. 將數字轉換為十六進位字元串

有時我們需要將一個數字轉換為十六進位格式的字元串,可以使用stringstreamprintf函數實現,如下所示:

int num = 255;
stringstream ss;
ss << std::hex << num;
string hex_str = ss.str();
printf("%s\n", hex_str.c_str()); // 輸出"ff"

3. 將字元串格式化為指定寬度的字元串

如果需要將一個字元串格式化為指定寬度的字元串,可以使用std::setwstd::setfill函數,如下所示:

string str = "hello";
string format_str = std::setw(10) << std::setfill('*') << str;
cout << format_str << endl; // 輸出"*****hello"

其中,std::setw(10)表示指定寬度為10個字元,不足的地方用空格填充,而std::setfill('*')表示使用*字元填充不足的地方。

四、總結

使用C++ string實現字元串和數字的互轉可以在實際開發中提高效率,節約代碼量。我們可以使用stoito_stringstof等函數實現基本轉換,也可以使用stringstreamprintf等技巧實現更為複雜的操作。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/312679.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2025-01-06 09:47
下一篇 2025-01-06 09:47

相關推薦

  • Python字元串寬度不限制怎麼打代碼

    本文將為大家詳細介紹Python字元串寬度不限制時如何打代碼的幾個方面。 一、保持代碼風格的統一 在Python字元串寬度不限制的情況下,我們可以寫出很長很長的一行代碼。但是,為了…

    編程 2025-04-29
  • Python循環符合要求數字求和

    這篇文章將詳細介紹如何通過Python循環符合要求數字求和。如果你想用Python求和但又不想手動輸入數字,那麼本文將是一個不錯的選擇。 一、使用while循環實現求和 sum =…

    編程 2025-04-29
  • Python中將字元串轉化為浮點數

    本文將介紹在Python中將字元串轉化為浮點數的常用方法。在介紹方法之前,我們先來思考一下這個問題應該如何解決。 一、eval函數 在Python中,最簡單、最常用的將字元串轉化為…

    編程 2025-04-29
  • Java判斷字元串是否存在多個

    本文將從以下幾個方面詳細闡述如何使用Java判斷一個字元串中是否存在多個指定字元: 一、字元串遍歷 字元串是Java編程中非常重要的一種數據類型。要判斷字元串中是否存在多個指定字元…

    編程 2025-04-29
  • Python學習筆記:去除字元串最後一個字元的方法

    本文將從多個方面詳細闡述如何通過Python去除字元串最後一個字元,包括使用切片、pop()、刪除、替換等方法來實現。 一、字元串切片 在Python中,可以通過字元串切片的方式來…

    編程 2025-04-29
  • Python基本數字類型

    本文將介紹Python中基本數字類型,包括整型、布爾型、浮點型、複數型,並提供相應的代碼示例以便讀者更好的理解。 一、整型 整型即整數類型,Python中的整型沒有大小限制,所以可…

    編程 2025-04-29
  • c# enum轉換成string

    本文將從以下幾個方面詳細闡述c#中enum類型轉換成string類型的方法及注意事項。 一、基本語法和示例 c#中的enum類型可以看作是一組有名字的常量值,通常用於定義一組相關的…

    編程 2025-04-29
  • Python列印數字三角形

    本文將詳細闡述如何使用Python列印數字三角形,包括從基本代碼實現到進階操作的應用。通過本文的學習,您可以掌握Python的基礎語法,同時加深對Python循環和函數的理解,提高…

    編程 2025-04-29
  • Python數字求和怎麼寫

    在Python中實現數字求和非常簡單,下面將從多個方面對Python數字求和的實現方法做詳細的闡述。 一、直接使用「+」符號進行求和 a = 10 b = 20 c = a + b…

    編程 2025-04-29
  • Python提取連續數字

    本文將介紹如何使用Python提取一個字元串中的連續數字。 一、使用正則表達式提取 正則表達式是一種可以匹配文本片段的模式。Python內置了re模塊,可以使用正則表達式進行字元串…

    編程 2025-04-29

發表回復

登錄後才能評論