C C string轉數值型別的方法總結

2021-10-09 11:01:25 字數 2481 閱讀 6223

在工作中經常會碰到一些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...