C 數值型別與string的相互轉換

2021-08-14 13:36:30 字數 3486 閱讀 2238

參考自

#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...