需要包含標頭檔案
#include
數值型別轉成string型別:
string to_string(int val);
string to_string(unsigned val);
string to_string(long val);
string to_string(unsigned long val);
string to_string(long 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);
string型別轉成數值型別:
intstoi(const string& str, size_t *pos=0, int base=10);
long
stol(const string& str, size_t *pos=0, int base=10);
unsigned long
stoul(const string& str, size_t *pos=0, int base=10);
long long
stoll(const string& str, size_t *pos=0, int base=10);
unsigned long long
stoull(const string& str, size_t *pos=0, int base=10);
float
stof(const string& str, size_t *pos=0);
double
stod(const string& str, size_t *pos=0);
long double
stold(const string& str, size_t *pos=0);
這些函式忽略str開頭的空白,pos引數儲存已處理的字元個數,如果是nullptr則忽略,base引數為數的底,進製數,預設為10。
比如
const std::string str = "123$ is enough";
size_t pos = 0
;int num = std::stoi(str, &pos, 10
);std::cout
<< str.c_str() + pos << std::endl;
將輸出 $ is enough ,num值為123,pos值為4。
c++17新增了更高效的數值和字串轉換函式,在標頭檔案中,這些函式內部沒有記憶體申請開銷,和區域無關(locale-independent)。
整形型別轉成字串:
to_chars_result
to_chars(char* first, char* last, integert value, int base = 10);
此函式為模版函式,integert為整形型別或char型別,first, last為呼叫者提供的用於儲存轉換結果的連續記憶體區間。
函式返回型別為
struct to_chars_result ;
例子:
std::string strnum(16, '');auto [ptr, ec] = std::to_chars(strnum.data(), strnum.data() + strnum.size(), 123
);if (ec ==std::errc())
else
auto [ptr, ec]為c++17中的結構化繫結用法,轉換後strnum值為"123",ptr值為strnum.data() + 3。to_chars_result浮點數轉成字串:
to_chars(char* first, char* last, floatt value);
to_chars_result
to_chars(char* first, char* last, floatt value, chars_format format);
to_chars_result
to_chars(char* first, char* last, floatt value, chars_format format, int precision);
floatt可以是 float, double, 或 long double 型別,format 型別為 chars_format ,可以是下列值的組合,預設值為 chars_format::general。
enumclass
chars_format ;
字串轉為數值型別:
from_chars_result
from_chars(const char* first, const char* last, integert& value, int base = 10);
from_chars_result
from_chars(const char* first, const char* last, floatt& value, chars_format format = chars_format::general);
first, last為被轉換的字串的開始和結束位址,integert為整形型別,floatt為浮點數型別。
from_chars_result 型別為:
structfrom_chars_result ;
轉換成功的話ec值等於std::errc(),ptr 值為第乙個不能被轉換字元的位址,如果字串都能被轉換的話,ptr 值為 last.
如果是字串表示的實際值超出 integert 或 floatt 的區間,ec值為 std::errc::result_out_of_range。
如果轉換失敗,ec值為 std::errc::invalid_argument, ptr 值為 first。
另外注意:from_chars 不會跳過字串開頭的空白。
C 數值型別的轉換
介紹c 數值型別之間轉換,包括介紹testbasic 函式等方面。c 數值型別之間轉換 這裡所說的數值型別包括 byte,short,int,long,fload,double 等,根據這個排列順序,各種型別的值依次可以向後自動進行轉換。舉個例來說,把乙個 short 型的資料賦值給乙個 int 型...
python數值型別和字串詳解
一 python數值型別 二 字串 字串建立 在python中表示字串有3種方式,分別為單引號 雙引號 三引號。其中單引號和雙引號的作用一樣 in 8 s hello in 9 type s out 9 str in 10 s world in 11 type s out 11 str in 14 ...
標準c字元和字串
atof 將字串轉換成浮點數 atoi 將字串轉換成整數 atol 將字串轉換成長整型數 isalnum 當字母或數字字元時,返回真值 isalpha 當字母字元時,返回真值 iscntrl 當控制字元時,返回真值 isdigit 當數字字元時,返回真值 isgraph 當非空格可列印字元時,返回真...