數值字符串轉換函數


atoi

#include <stdlib.h>
int atoi(const char *nptr);

atoi把一個字符串開頭可以識別成十進制整數的部分轉換成int型 。

例如:

atoi("123abc");//返回值是123,
atoi(" -90.6-");//字符串開頭可以有若干空格,返回值是-90
atoi("asdf");//如果字符串開頭沒有可識別的整數,則返回0
atoi("0***");//也返回0,根據返回值並不能區分上面這兩種情況,所以使用atoi函數不能檢查出錯的情況。 

atof

#include <stdlib.h>
double atof(const char *nptr);

atof把一個字符串開頭可以識別成浮點數的部分轉換成double型。

字符串開頭可以識別的浮點數格式和C語言的浮點數常量相同:

atof("31.4 ");//返回值是31.4
atof("3.14e+1AB");//返回值也是31.4

strtol

#include <stdlib.h>
long int strtol(const char *nptr, char **endptr, int base);

strtolatoi的增強版,主要體現在這幾方面:

  • 不僅可以識別十進制整數,還可以識別其它進制的整數,取決於base參數。
  • endptr是一個傳出參數,函數返回時指向后面未被識別的第一個字符。
  • 如果字符串中的整數值超出long int的表示范圍(上溢或下溢),則strtol返回它所能表示的最大(或最小)整數,並設置errnoERANGE。
strtol("0XDEADbeE~~", NULL, 16);//返回0xdeadbee的值
strtol("0777~~", NULL, 8);//返回0777的值

strtod

#include <stdlib.h>
double strtod(const char *nptr, char **endptr);

trtodatof的增強版,增強的功能和strtol類似。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM