新聞中心
atoi函數(shù)是linux下的標(biāo)準(zhǔn)庫(kù)函數(shù),簡(jiǎn)單來說,它的功能是將字符串轉(zhuǎn)換為整形,atoi是ASCII to int的縮寫,它將字符串參數(shù)nptr轉(zhuǎn)換為一個(gè)整數(shù)(int)類型。這個(gè)函數(shù)只轉(zhuǎn)換參數(shù)nptr字符串開始處的不進(jìn)行空格分組,連續(xù)的數(shù)字字符串為一個(gè)整數(shù)值,例如:atoi(” -1230″)為-1230。

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供興安網(wǎng)站建設(shè)、興安做網(wǎng)站、興安網(wǎng)站設(shè)計(jì)、興安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)與制作、興安企業(yè)網(wǎng)站模板建站服務(wù),十年興安做網(wǎng)站經(jīng)驗(yàn),不只是建網(wǎng)站,更提供有價(jià)值的思路和整體網(wǎng)絡(luò)服務(wù)。
函數(shù)原型為:int atoi(const char *nptr);
其中,const char *nptr為輸入?yún)?shù),指向要轉(zhuǎn)換的字符串,函數(shù)的返回值為int類型的轉(zhuǎn)換結(jié)果。
atoi函數(shù)的內(nèi)部實(shí)現(xiàn)很簡(jiǎn)單,大體上來說,就是取出空字符前連續(xù)的數(shù)字,剩下非數(shù)字字符串舍棄掉;然后根據(jù)在取出的字符串上遍歷,將每一位數(shù)字char類型轉(zhuǎn)換為int類型,根據(jù)其ASCII碼,經(jīng)過ASCII碼0減去正負(fù)然后相乘;最后將該數(shù)字乘以10與之前求出的積相加,若是積大于等于0,則取其正值,反之取其負(fù)值。
具體地,下面是一個(gè)簡(jiǎn)單的實(shí)現(xiàn):
“`cpp
int atoi (const char * nptr)
{
int num = 0;
int flag = 0; //標(biāo)志位,用來確定最后的返回結(jié)果是正是負(fù)
int i = 0;
if (nptr[0] == ‘-‘)
{
//如果第一個(gè)字符是“-”,將標(biāo)志位改變
flag = 1;
i++;
}
for (; nptr[i] >= ‘0’ && nptr[i]
{
//將每一位字符轉(zhuǎn)換為int單位相乘
num = num * 10 + nptr[i] – ‘0’;
}
if (flag == 1)
{
//如果是負(fù)數(shù),取負(fù)值
num = -num;
}
return num;
}
從上面可以看出,linux下的atoi函數(shù)用于將字符串轉(zhuǎn)換為int數(shù)據(jù)類型,它的功能是將空字符前連續(xù)的數(shù)字取出,根據(jù)ASCII碼0減去正負(fù)位,然后相乘得到int類型數(shù)據(jù),最后根據(jù)標(biāo)志位取其正負(fù)值返回轉(zhuǎn)換結(jié)果。
創(chuàng)新互聯(lián)成都網(wǎng)站建設(shè)公司提供專業(yè)的建站服務(wù),為您量身定制,歡迎來電(028-86922220)為您打造專屬于企業(yè)本身的網(wǎng)絡(luò)品牌形象。
成都創(chuàng)新互聯(lián)品牌官網(wǎng)提供專業(yè)的網(wǎng)站建設(shè)、設(shè)計(jì)、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計(jì)和制作領(lǐng)域具有豐富的經(jīng)驗(yàn)。
標(biāo)題名稱:函數(shù)linux下atoi函數(shù)簡(jiǎn)介(linuxatoi)
網(wǎng)頁(yè)URL:http://www.5511xx.com/article/dhchhsg.html


咨詢
建站咨詢
