標準C函式的一些字串與整型 浮點型的轉換

2021-08-21 20:35:48 字數 4962 閱讀 1878

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

相關函式

atoi,atol,strtod,strtol,strtoul

表頭檔案

#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(將字串轉換成整型 數)

相關函式

atof,atol,atrtod,strtol,strtoul

表頭檔案

#include

定義函式

int atoi(const char *nptr);

函式說明

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

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

附加說明

atoi()與使用 strtol(nptr,(char**)null,10);結果相同。

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

#include

mian()

執行c=356

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

相關函式

atof,atoi,strtod,strtol,strtoul

表頭檔案

#include

定義函式

long atol(const char *nptr);

函式說明

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

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

附加說明

atol()與使用 strtol(nptr,(char**)null,10);結果相同。

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

#include

main()

執行c=1234567890

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

相關函式

ecvt,fcvt,sprintf

表頭檔案

#include

定義函式

char *gcvt(double number,size_t ndigits,char *buf);

函式說明

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

返回值返回一字串指標,此位址即為buf指 針。

附加說明

範例#include

main()

執行a value=123.45

b value=-1234.56

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

相關函式

atoi,atol,strtod,strtol,strtoul

表頭檔案

#include

定義函式

double strtod(const char *nptr,char **endptr);

函式說明

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

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

附加說明

參考atof()。

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

#include

mian()

執行a=1000000000

b=512

c=65535

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

相關函式

atof,atoi,atol,strtod,strtoul

表頭檔案

#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(將字串轉換 成無符號長整型數)

相關函式

atof,atoi,atol,strtod,strtol

表頭檔案

#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 碼字元)

相關函式

isascii,toupper,tolower

表頭檔案

#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(將大寫字母轉 換成小寫字母)

相關函式

isalpha,toupper

表頭檔案

#include

定義函式

int tolower(int c);

函式說明

若引數c為大寫字母則將該對應的小寫字 母返回。

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

附加說明

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

#include

main()

{char s=」abcdefgh12345;!#$」;

int i;

printf(「before tolower() : %s/n」,s);

for(i=0;i

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

after tolower() : abcdefgh12345;!#$

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

相關函式

isalpha,tolower

表頭檔案

#include

定義函式

int toupper(int c);

函式說明

若引數c為小寫字母則將該對映的大寫字 母返回。

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

附加說明

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

#include

main()

{char s=」abcdefgh12345;!#$」;

int i;

printf(「before toupper() : %s/n」,s);

for(i=0;i

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

after toupper() : abcdefgh12345;!#$

一些字串函式

1.right location,somenumber left location,somenumber select right location,2 from my contacts 返回location列中所有右數兩個字元 select left location,2 from my cont...

C 一些字串處理函式

1.複製函式 我更願意稱之為 字串覆蓋函式 a.strcpy str1,str2 將字串str2 覆蓋到str1上 b.strncpy str1,str2,n 2.拼接函式 a.strcat str1,str2 將str2接到str1後面 b.strncat str1,str2,n 3.比較函式 a...

字串的一些函式

單字元超作 獲取字串長度strlen strsrc char str3 hello int len len strlen str3 printf strlen d len 它純在這一點侷限 但字元陣列中有 0 時,字元長度返回值是錯誤的。倆個字元超作 複製字串超作函式 strcpy strdet s...