C語言字串轉數值

2022-01-18 07:59:09 字數 4218 閱讀 1550

常用到字串和數字的轉換蒐集整理 方便以後再用

atof(將字串轉換成浮點型數)

atoi(將字串轉換成整型數)

atol(將字串轉換成長整型數)

strtod(將字串轉換成浮點數)

strtol(將字串轉換成長整型數)

strtoul(將字串轉換成無符號長整型數)

toascii(將整型數轉換成合法的ascii 碼字元)

toupper(將小寫字母轉換成大寫字母)

tolower(將大寫字母轉換成小寫字母)

atof(將字串轉換成浮點型數)

表頭檔案:#include

定義函式:double atof(const char *nptr);

函式說明:atof()會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時('\0')才結束轉換,並將結果返回。引數nptr字串可包含正負號、小數點或e(e)來表示指數部分,如123.456或123e-2。

返回值:返回轉換後的浮點型數。

附加說明:atof()與使用strtod(nptr,(char**)null)結果相同。

範例:/* 將字串a 與字串b轉換成數字後相加*/

#include

main()

執行 c=-98.23

atoi(將字串轉換成整型數)

表頭檔案:#include

定義函式:int atoi(const char *nptr);

函式說明:atoi()會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時('\0')才結束轉換,並將結果返回。

返回值:返回轉換後的整型數。

附加說明:atoi()與使用strtol(nptr,(char**)null,10);結果相同。

範例:/* 將字串a 與字串b轉換成數字後相加*/

#include

mian()

執行 c=356

atol(將字串轉換成長整型數)

表頭檔案:#include

定義函式:long atol(const char *nptr);

函式說明:atol()會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時('\0')才結束轉換,並將結果返回。

返回值:返回轉換後的長整型數。

附加說明:atol()與使用strtol(nptr,(char**)null,10);結果相同。

範例:/*將字串a與字串b轉換成數字後相加*/

#include

main()

執行 c=1234567890

gcvt(將浮點型數轉換為字串,取四捨五入)

表頭檔案:#include

定義函式:char *gcvt(double number,size_t ndigits,char *buf);

函式說明:gcvt()用來將引數number轉換成ascii碼字串,引數ndigits表示顯示的位數。gcvt()與ecvt()和fcvt()不同的地方在於,gcvt()所轉換後的字串包含小數點或正負符號。若轉換成功,轉換後的字串會放在引數buf指標所指的空間。

範例:#include

main()

執行 a value=123.45

b value=-1234.56

strtod(將字串轉換成浮點數)

表頭檔案:#include

定義函式:double strtod(const char *nptr,char **endptr);

函式說明:strtod()會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,到出現非數字或字串結束時 ('\0')才結束轉換,並將結果返回。若endptr不為null,則會將遇到不合條件而終止的nptr中的字元指標由endptr傳回。引數nptr字串可包含正負號、小數點或e(e)來表示指數部分。如123.456或123e-2。

返回值:返回轉換後的浮點型數。

範例:/*將字串a,b,c 分別採用10,2,16 進製轉換成數字*/

#include

mian()

執行 a=1000000000

b=512

c=65535

strtol(將字串轉換成長整型數)

表頭檔案:#include

定義函式:long int strtol(const char *nptr,char **endptr,int base);

函式說明:strtol()會將引數nptr字串根據引數base來轉換成長整型數。引數base範圍從2至36,或0。引數base代表採用的進製方式,如base值為10則採用10進製,若base值為16則採用16進製制等。當base值為0時則是採用10進製做轉換,但遇到如'0x'前置字元則會使用16進製做轉換。一開始strtol()會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,再遇到非數字或字串結束時('\0')結束轉換,並將結果返回。若引數endptr不為null,則會將遇到不合條件而終止的nptr中的字元指標由endptr返回。

返回值 返回轉換後的長整型數,否則返回erange並將錯誤**存入errno中。

附加說明:erange指定的轉換字串超出合法範圍。

範例:/* 將字串a,b,c 分別採用10,2,16進製制轉換成數字*/

#include

main()

執行 a=1000000000

b=512

c=65535

strtoul(將字串轉換成無符號長整型數)

表頭檔案:#include

定義函式:unsigned long int strtoul(const char *nptr,char **endptr,int base);

函式說明:strtoul()會將引數nptr字串根據引數base來轉換成無符號的長整型數。引數base範圍從2至36,或0。引數base代表採用的進製方式,如base值為10則採用10進製,若base值為16則採用16進製制數等。當base值為0時則是採用10進製做轉換,但遇到如'0x'前置字元則會使用16進製做轉換。一開始strtoul()會掃瞄引數nptr字串,跳過前面的空格字串,直到遇上數字或正負符號才開始做轉換,再遇到非數字或字串結束時('\0')結束轉換,並將結果返回。若引數endptr不為null,則會將遇到不合條件而終止的nptr中的字元針由endptr返回。

返回值:返回轉換後的長整型數,否則返回erange並將錯誤**存入errno中。

附加說明:erange指定的轉換字串超出合法範圍。

範例:參考strtol()

toascii(將整型數轉換成合法的ascii 碼字元)

表頭檔案:#include

定義函式:int toascii(int c)

函式說明:toascii()會將引數c轉換成7位的unsigned char值,第八位則會被清除,此字元即會被轉成ascii碼字元。

返回值:將轉換成功的ascii碼字元值返回。

範例:#include

main()

執行 before toascii() : a value =217()

after toascii() : a value =89(y)

tolower(將大寫字母轉換成小寫字母)

表頭檔案:#include

定義函式:int tolower(int c);

函式說明:若引數c為大寫字母則將該對應的小寫字母返回。

返回值:返回轉換後的小寫字母,若不須轉換則將引數c值返回。

範例:/* 將s字串內的大寫字母轉換成小寫字母*/

#include

main()

執行 before tolower() : abcdefgh12345;!#$

after tolower() : abcdefgh12345;!#$

toupper(將小寫字母轉換成大寫字母)

表頭檔案:#include

定義函式:int toupper(int c);

函式說明:若引數c為小寫字母則將該對映的大寫字母返回。

返回值:返回轉換後的大寫字母,若不須轉換則將引數c值返回。

範例:/* 將s字串內的小寫字母轉換成大寫字母*/

#include

main()

執行 before toupper() : abcdefgh12345;!#$

after toupper() : abcdefgh12345;!#$

C 字串轉數字

c 字串與數字的轉換應該是很常見的問題,每次遇到了再去查有點費勁,乾脆記錄下來 stod 字串轉double stof 字串轉float stoi 字串轉int stol 字串轉long stold 字串轉double stoll 字串轉long long stoul 字串轉unsigned lon...

字串 字串轉數字

題目 將乙個字串轉換成數字。例如 123 123,71.02 71.02.方法一,直接呼叫庫函式atoi const char 和atof const char stoi string str include include int main 輸出結果 num int 435 num double ...

C語言字串,字元轉數字,數字轉字元

在c c 語言中沒有專門的字串變數,通常用字元陣列來存放字串。字串是以 0 作為結束符。c c 提供了豐富的字串處理函式,下面列出了幾個最常用的函式。字串輸出函式puts。字串輸出函式gets。字串連線函式strcat。字串複製函式strcpy。測字串長度函式strlen。字串是面試的重點考查部分的...