linux常用c函式字串轉換篇

2021-09-30 11:24:58 字數 2849 閱讀 8395

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()

double a=123.45;

double b=-1234.56;

char *ptr;

int decpt,sign;

gcvt(a,5,ptr);

printf(「a value=%s\n」,ptr);

ptr=gcvt(b,6,ptr);

printf(「b value=%s\n」,ptr);

執行  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。

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

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

#include

mian()

char a=」1000000000」;

char b=」1000000000」;

char c=」ffff」;

printf(「a=%d\n」,strtod(a,null,10));

printf(「b=%d\n」,strtod(b,null,2));

printf(「c=%d\n」,strtod(c,null,16));

執行  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()

char a=」1000000000」;

char b=」1000000000」;

char c=」ffff」;

printf(「a=%d\n」,strtol(a,null,10));

printf(「b=%d\n」,strtol(b,null,2));

printf(「c=%d\n」,strtol(c,null,16));

執行  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()

c語言字串 數字轉換函式

最近學資料結構老是做實驗 常用到字串和數字的轉換 想找卻發現網上的資料太散 所以蒐集整理一下 方便以後再用 atof 將字串轉換成浮點型數 atoi 將字串轉換成整型數 atol 將字串轉換成長整型數 strtod 將字串轉換成浮點數 strtol 將字串轉換成長整型數 strtoul 將字串轉換成...

字串函式 將字串轉換數字

標頭檔案 includeatof 函式用來將字串轉換成雙精度浮點數 double 函式說明 atof 會掃瞄引數nptr字串,跳過前面的空格字元,直到遇上數字或正負符號才開始做轉換,而再遇到非數字或字串結束時 0 才結束轉換,並將結果返回,str字串可包含正負號 小數點或e e 來表示指數部分 in...

字串和數字轉換函式

vb中的字串函式比較多,也比較方便,就不一一介紹了.本文主要對字串相關的 轉換函式做一些小結.字串轉換的函式主要有 str 和val 用於字串和數字的相互轉換 chr 和asc 用於字串和ascii碼的相互轉換 chrw 和ascw 用於unicode碼和中文的相互轉換 format 函式用途十分廣...