字串與數字之間的轉換

2021-10-08 13:54:21 字數 1821 閱讀 7319

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字串,跳過前面的...