c/c++標準庫stdlib.h中提供了字串到數字的轉換。
一、標頭檔案
[cpp]view plain
copy
#include
二、函式列表
[cpp]view plain
copy
int atoi ( const
char * str );
long
int atol ( const
char * str );
double atof ( const
char * str );
long
int strtol ( const
char * str, char ** endptr, int base );
unsigned long
int strtoul ( const
char * str, char ** endptr, int base );
double strtod ( const
char * str, char ** endptr );
三、函式說明
1、atoi
原型:[cpp]view plain
copy
int atoi ( const
char * str );
引數:str,待轉換的字串。
說明:從str第乙個字元開始掃瞄,忽略空白字元,直到遇到第乙個非空白字元。從這個非空白字元開始轉換,直到遇到非數字字元停止轉換。atoi接受+、-號。如果第乙個非空白字元不是+、-號,也不是數字字元,則不執行轉換。atoi允許數字串後跟非數字字元,不影響轉換結果。
返回值:
成功,返回轉換結果;如果,沒有執行有效的轉換,返回0;如果字串的值超出了int範圍,返回int_max或者int_min。
2、atol
原型:[cpp]view plain
copy
long
int atol ( const
char * str );
引數:str,待轉換的字串。
說明:從str第乙個字元開始掃瞄,忽略空白字元,直到遇到第乙個非空白字元。從這個非空白字元開始轉換,直到遇到非數字字元停止轉換。atol接受+、-號。如果第乙個非空白字元不是+、-號,也不是數字字元,則不執行轉換。atol允許數字串後跟非數字字元,不影響轉換結果。
返回值:
成功,返回轉換結果;如果,沒有執行有效的轉換,返回0;如果字串的值超出了long int範圍,返回long_max或者long_min。
3、atof
原型:[cpp]view plain
copy
double atof ( const
char * str );
引數:str,待轉換的字串。
說明:從str第乙個字元開始掃瞄,忽略空白字元,直到遇到第乙個非空白字元。從這個非空白字元開始轉換,直到遇到非有效浮點字元停止轉換。atof接受+、-號。如果第乙個非空白字元不是+、-號,也不是數字字元,則不執行轉換。atof允許數字串後跟非數字字元,不影響轉換結果。有效的浮點字元定義為:乙個可選的正負號(+,-)後面緊跟一串數字字元(包含小數點「.」),再後面是乙個可選部分,指數,指數由e或e,其後面是正負號(正號+可省略),再加一串數字字元組成。
返回值:
成功,返回轉換結果;如果沒有執行有效的轉換,返回0.0;如果字串的值超出double的範圍,返回 huge_val。
4、strtol
原型:[cpp]view plain
copy
long
int strtol ( const
char * str, char ** endptr, int base );
引數:str,待轉換的字串。
endptr,str中不符合條件的字元的指標。
base,採用的進製。
說明:strtol對str進行掃瞄,根據引數base對其進行轉換。函式略過開頭的空白字元,直到遇到乙個非空白字元。從這個非空白字元開始,直到有效字串行結束,停止轉換。乙個有效字串行是這樣的:乙個可選的正負(+,-)號,後跟乙個可選的八進位制或十六進製制字首(0或0x),後跟一串十進位制數字(如果字首0,0x沒有指定),或者一串八進位制或十六進製制數字(如果字首0或0x指定)。引數base指出了str中數字作為base進製來轉換,其取值為 。base = 0,base = 10時,都是採用10進製。如果str的第乙個非空白字元不是有效字串行中的乙個,那麼不執行轉換。有效字串行後的其他字元,不影響轉換結果。有效字串行後的第乙個非有效字元,或者第乙個非空白字元但不是有效字串行中的一員,由指標endptr返回,
返回值:
成功,返回轉換結果;如果,沒有執行有效的轉換,返回0;如果字串的值超出了long int範圍,返回long_max或者long_min。
5、strtoul
原型:[cpp]view plain
copy
unsigned long
int strtoul ( const
char * str, char ** endptr, int base );
引數:str,待轉換的字串。
endptr,str中不符合條件的字元的指標。
base,採用的進製。
說明:功能同strtol,只是返回無符號的long int,其中,有效字串行中沒有正負號(+,-)。
返回值:
成功,返回轉換結果;如果沒有執行有效的轉換,返回0;如果字串的值超出了unsigned long int 的範圍,返回ulong_max,同時置errno 為erange。
6、strtod
原型:[cpp]view plain
copy
double strtod ( const
char * str, char ** endptr );
引數:str,待轉換字串。
endptr,str中不符合條件的字元的指標。
說明:從str第乙個字元開始掃瞄,忽略空白字元,直到遇到第乙個非空白字元。從這個非空白字元開始轉換,直到遇到非有效浮點字元停止轉換。strtod接受+、-號。如果第乙個非空白字元不是+、-號,也不是數字字元,則不執行轉換。strtod允許數字串後跟非數字字元,不影響轉換結果。有效的浮點字元定義為:乙個可選的正負號(+,-)後面緊跟一串數字字元(包含小數點「.」),再後面是乙個可選部分,指數,指數由e或e,其後面是正負號(正號+可省略),再加一串數字字元組成。有效浮點字元後的第乙個非有效浮點字元由endptr返回。
返回值:
成功,返回轉換結果;如果沒有執行有效的轉換,返回0.0;如果字串的值超出double的範圍,返回 huge_val。
C C 數字和字串的轉換
今天,我在做題時候,遇到了字串和數字之間的轉換,現將轉換的方法總結如下。數字轉換成字串 include include using namespace std intmain 字串轉化成數字 include include using namespace std intmain 數字轉換成字串 in...
字串函式 將字串轉換數字
標頭檔案 includeatof 函式用來將字串轉換成雙精度浮點數 double 函式說明 atof 會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時 0 才結束轉換,並將結果返回,str字串可包含正負號 小數點或e e 來表示指數部分 in...
字串 數字 的相互轉換 c,c
include include includeusing namespace std string 轉 int int str2num string s int 轉 string string num2str int i include c語言提供了幾個標準庫函式,可以將任意型別 整型 長整型 浮點...