在工作中經常會碰到一些string轉數值型別的轉換操作,以下是對c和c++語言處理string轉數值型別的小總結。
在的標頭檔案中有好些個庫函式支援從字串轉為數值。
字串轉int
函式原型:
int
atoi
(const
char
* str)
引數:str表示要被轉換的字串
//示例
char
* ch =
"18"
;string str =
"10"
;int a =
atoi
(ch)
;// 結果:a = 18
int b =
atoi
(str.
c_str()
);// 結果 b = 10
2.字串轉unsigned long int
函式原型
unsigned
long
int strtoul (
const
char
* str,
char
** endptr,
int base)
;
函式引數:
str:將被轉換的字串
endptr:指向str中數字後第乙個非數字字元
base:表示轉換進製
//示例
char
* ch =
"100"
;string str =
"101"
;unsigned
int a =
strtoul
(ch,
null,10
);//以10進製將ch轉換為unsigned long int
unsigned
int b =
strtoul
(str.
c_str()
,null,10
);//同理
3.字串轉float或者double
函式原型:
double
atof
(const
char
* str)
//示例
char
* ch =
"10.001"
;string str =
"6.666"
;double a =
atof
(ch)
;float b =
atof
(str.
c_str()
);//這裡b是單精度型,返回值是double,
//所以會存在型別轉換問題,由float到double存在損失精度
字串轉long long
函式原型:
long
long lllove=
atoll
(const
char
* str)
;
//示例
char
*ch =
"199"
;string str =
"12345"
;long
long a =
strtoll
(ch)
;long
long b =
strtoll
(str.
c_str()
);
c庫中還有字串轉換為其他數值型別的函式,但基本上常用的就以上這些。
在c++中引入了ostringstream、istringstream、stringstream這三個類,但是我們今天要講的是istringstream類。該類包含在sstream標頭檔案中。
模板函式實現通用的string轉數值型別:
template
<
class
type
>
type stringtonum
(const string& str)
接下來看一下簡單的小例子:
#include
#include
using
namespace std;
template
<
class
type
>
type stringtonum
(const string& str)
intmain()
除了以上的方法之外,c++也提供了相關的庫函式來將string轉換為數值型別,例如stoi等等,其用法和c庫函式差不太多,這裡不再贅述。 python的數值型別 Python的數值型別
標籤 如何 問題 1.python數值有哪些?2.各型別的精度是多少?3.型別的轉換是如何實現的?5.如何使用這些資料型別?需要注意什麼?6.什麼是不可變型別?數值型別 整型 不可變型別 標準整型 取值範圍 sys.maxint 1,sys.maxint 長整型 可表示無限大的整數,其值僅與你機器支...
mysql 的數值型別
double m,d unsigned zerofill 普通大小 雙精度 浮點數。m是小數總位數,d是小數點後面的位數。如果m和d被省略,根據硬體允許的限制來儲存值。雙精度浮點數精確到大約15位小數。如果指定unsigned,不允許負值。float m,d unsigned zerofill 小 ...
int,long,long long型別的數值範圍
概念 整型 表示整數 字元和布林值的算術型別合稱為整型 integral type 關於帶符號與無符號型別 整型 int stort 和 long 都預設為帶符號型。要獲得無符號型則必須制定該型別為unsigned,比如unsigned long。unsigned int型別可以簡寫為unsigne...