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

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


咨詢(xún)
建站咨詢(xún)
