c++ 11 提供了若干 to_string(t value) 函式來將 t 型別的數字值轉換為字串形式。以下是幾個 to_string() 函式的列表:
string to_string(int value)
string to_string(long value)
string to_string(double value)
來看以下**示例:
int a = 5;
string str = to_string(a*a);
cout << " the square of 5 is " << str << endl;
以上示例即顯示了該系列函式的用法。它將列印如下字串:
the square of 5 is 25
to_string() 函式無法處理非十進位制整數的轉換。如果需要該功能,則應該使用 ostringsteam 物件來完成該轉換。
字串到數字的轉換可以通過 stox() 系列函式來執行。該系列函式的成員可以將字串轉換為 int、long、float 和 double 型別的數字。具體語法如下所示:
int stoi(const strings str, size_t* pos = 0, int base = 10)
long stol(const strings str, size_t* pos = 0, int base = 10)
float stof(const strings str, size_t* pos = 0)
double stod(const strings str, size_t* pos = 0)
第乙個形參 str 是乙個字串(例如 「-342」 或 「3.48」 等),它將被轉換為恰當的數字形式。這些函式可以將 str 可能的最長字首轉換為數字,並返回乙個整數字址 pos,pos 中儲存了 str 無法被轉換的第乙個字元的索引。型別 size_t 是在標準庫中定義的,常用於表示無符號整數的大小或陣列、向量、字串中的乙個索引。
例如,如果試圖轉換字串 「-34iseven」,則將成功返回整數 -34,而無法轉換的第乙個字元的位置 pos 則被設定為 3。base 形參僅適用於整數轉換,指示用於轉換的進製。pos 和 base 形參都是可選的,所以它們可以被忽略。如果 pos 被忽略,則不會儲存停止字元的索引。如果 base 被忽略,則預設為十進位制。如果字串 str 包含乙個無效值,例如 「is-34 even?」,則不會進行轉換,函式將丟擲乙個 invalid_argument 異常。
下面的程式演示了字串轉換函式的用法:
// this program demonstrates the use of the sto***()
// numeric conversion functions.
#include
#include
using namespace std;
int main()
程式輸出結果:
the string is -342.57is a number
the converted double is -342.57
the stopping character is i at position 7
the string is -342.57is a number
the converted integer is -342
the stopping character is . at position 4
the string is 01110binary number
the converted binary integer is 14
the stopping character is b at position 5
數字與字串之間的轉換
c語言為我們提供了數字和字串之間的轉換函式,這些函式有很多,常用的有 整型數轉字串函式itoa char itoa int value,char string,int radix int value 被轉換的整數,char string 轉換後儲存的字元陣列,int radix 轉換進製數,如2,8...
數字與字串之間的轉換
2 數字轉字串 使用sprintf 函式 char str 10 int a 1234321 sprintf str,d a char str 10 double a 123.321 sprintf str,3lf a char str 10 int a 175 sprintf str,x a 10...
字串與數字之間的轉換
字串與數字之間的轉換 atof 的功能 將字串轉換成浮點型數 相關函式 atoi,atol,strtod,strtol,strtoul 所屬庫名 and 標頭檔案 include 定義函式 double atof const char nptr 函式說明 atof 會掃瞄引數nptr字串,跳過前面的...