新聞中心
linux系統(tǒng)中的atoi函數(shù)是用來將字符串轉(zhuǎn)換成整形數(shù)值的一個標準c函數(shù)庫。atoi函數(shù)使用時,要傳入一個字符串指針,它會把字符串根據(jù)特定的規(guī)則轉(zhuǎn)換成相應(yīng)的整形值,然后將該值返回給函數(shù)調(diào)用者。atoi函數(shù)原型為 int atoi (const char *string) 。

atoi 函數(shù)在Linux中支持五種轉(zhuǎn)換格式:
(1)十進制:atoi 函數(shù)可以對十進制數(shù)字類型的字符串進行轉(zhuǎn)換,例如 “123”,其結(jié)果數(shù)字為123。
(2)八進制:atoi 函數(shù)可以轉(zhuǎn)換八進制整形字符串,例如“0123”,其結(jié)果數(shù)字為83。
(3)十六進制:atoi 函數(shù)可以轉(zhuǎn)換十六進制整形字符串,例如“0x123”,其結(jié)果數(shù)字為291。
(4)空白: atoi 函數(shù)可以忽略字符串中的前置和后置空白字符,這兩類空白字符包括空格、制表符、換行符等等。
(5)+ -號:atoi 函數(shù)可以識別字符串前置的+、-號,并根據(jù)其正負屬性對字符串數(shù)字加以正負符號運算。
示例:
// str:字符串 const char *str = ” 123com”;
int value = atoi (str); // 運算后 value = 123
(注:上述“com” 是字符串中的普通字符,它并不影響 atoi 函數(shù)的轉(zhuǎn)換)
從源代碼可以看出,atoi 函數(shù)內(nèi)部實現(xiàn)依賴strtol函數(shù),strtol 將字符串轉(zhuǎn)換為 long 類型,并返回 long 類型的值:
long strtol (const char *str, char **endptr, int base)
因此,atoi 函數(shù)的實現(xiàn)比較簡單,如下:
int atoi(const char *str) {
return (int) strtol(str, NULL, 10);
}
總結(jié):
Linux中atoi函數(shù)為標準C函數(shù)庫,它可以將字符串轉(zhuǎn)換成整形數(shù)值。它支持五種轉(zhuǎn)換格式,可以忽略字符串中的前置和后置空白字符,也可以識別字符串前置的+、-號。atoi函數(shù)內(nèi)部實現(xiàn)依賴strtol函數(shù),即于strtol將字符串轉(zhuǎn)換為long型,返回long型的值。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計,高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營銷推廣等一站式服務(wù)。
新聞名稱:函數(shù)解析Linux中atoi函數(shù)(linuxatoi)
網(wǎng)站路徑:http://fisionsoft.com.cn/article/djhpjhg.html


咨詢
建站咨詢
