參考自
#include
//ostringstream物件用來進行格式化的輸出,常用於將各種型別轉換為string型別
//ostringstream只支援《操作符
template
string tostring(const t& t)
cout
<14.2)string:輸出14.2
cout
<12301)string:輸出12301
cout
<123456789785)string:輸出123456789785
cout
string:輸出1
std命令空間下有乙個c++標準庫函式std::to_string(),可用於將數值型別轉換為string。使用時需要include標頭檔案string。
std::to_string是c++標準(2023年)的最新版本中引入的功能。舊的編譯器可能不支援它。
string to_string (int val);
string to_string (long val);
string to_string (long
long val);
string to_string (unsigned val);
string to_string (unsigned
long val);
string to_string (unsigned
long
long val);
string to_string (float val);
string to_string (double val);
string to_string (long
double val);
#include
#include
int main()
#include
#include //使用stringstream需要引入這個標頭檔案
using
namespace
std;
//模板函式:將string型別變數轉換為常用的數值型別(此方法具有普遍適用性)
template
type stringtonum(const
string& str)
int main(int argc, char* argv)
具體做法是先將string轉換為char*字串,再通過相應的型別轉換函式轉換為想要的數值型別。需要包含標準庫函式stdlib.h。
(1)string轉換為int32_t
string love="77";
int ilove=atoi(love.c_str());
//或者16位平台轉換為long int
int ilove=strtol(love.c_str(),null,10);
(2)string轉換為uint32_t
//str:待轉換字串
//endptr:指向str中數字後第乙個非數字字元
//base:轉換基數(進製),範圍從2至36
unsigned
long
int strtoul (const
char* str, char** endptr, int base);
string love="77";
unsigned
long ul;
ul = strtoul(love.c_str(), null, 10);
(3)string轉換為uint64_t
string love="77";
long
long lllove=atoll(love.c_str());
(4)string轉換為uint64_t
unsigned
long
long
int strtoull (const
char* str, char** endptr, int base);
string love="77";
unsigned
long
long ull;
ull = strtoull (love.c_str(), null, 0);
(5)string轉換為float或double
string love="77.77";
float flove=atof(love.c_str());
double dlove=atof(love.c_str());
(6)string轉換為long double
long
double strtold (const
char* str, char** endptr);
使用c++11引入的c++庫函式將string轉換為數值型別,相應的庫函式申明於標頭檔案string中。
名稱 說明
stoi convert string
tointeger (function
template )
stol convert string
tolong int (function
template)
stoul convert string
to unsigned integer (function
template)
stoll convert string
tolong
long (function
template)
stoull convert string
to unsigned long
long (function
template)
stof convert string
to float (function
template )
stod convert string
to double (function
template )
stold convert string
tolong double (function
template)
形參說明:
str:過載了string和wstring版本,表示被轉換的字串。
idx:表示乙個size_t*的指標型別,預設為空值。不為空時,轉換成功時獲取第乙個非數值字元的下標。一般情況下,因為它是直接char型指標把最後非數值字元的位址值和起始位址值相減,所以也表示成功轉換的字元數量,如」10」轉成功為數值10時,*idx的值為2。
base:表示轉換基準,預設是10進製。
C 數值型別與string的相互轉換
使用函式模板將基本資料型別 整型 字元型 實型 布林型 轉換成string。ostringstream物件用來進行格式化的輸出,常用於將各種型別轉換為string型別 ostringstream只支援 操作符 template string tostring const t t cout 14.2 ...
C 數值型別與string的相互轉換
使用函式模板將基本資料型別 整型 字元型 實型 布林型 轉換成string。ostringstream物件用來進行格式化的輸出,常用於將各種型別轉換為string型別 ostringstream只支援 操作符 template string tostring const t t cout 14.2 ...
C 數值型別與string的相互轉換
1.數值型別轉換為string 1.1使用函式模板 ostringstream 使用函式模板將基本資料型別 整型 字元型 實型 布林型 轉換成string。ostringstream物件用來進行格式化的輸出,常用於將各種型別轉換為string型別 ostringstream只支援 操作符 templ...