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

創(chuàng)新互聯(lián)建站專業(yè)為企業(yè)提供興安網(wǎng)站建設(shè)、興安做網(wǎng)站、興安網(wǎng)站設(shè)計、興安網(wǎng)站制作等企業(yè)網(wǎng)站建設(shè)、網(wǎng)頁設(shè)計與制作、興安企業(yè)網(wǎng)站模板建站服務(wù),十年興安做網(wǎng)站經(jīng)驗,不只是建網(wǎng)站,更提供有價值的思路和整體網(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)部實現(xiàn)很簡單,大體上來說,就是取出空字符前連續(xù)的數(shù)字,剩下非數(shù)字字符串舍棄掉;然后根據(jù)在取出的字符串上遍歷,將每一位數(shù)字char類型轉(zhuǎn)換為int類型,根據(jù)其ASCII碼,經(jīng)過ASCII碼0減去正負(fù)然后相乘;最后將該數(shù)字乘以10與之前求出的積相加,若是積大于等于0,則取其正值,反之取其負(fù)值。
具體地,下面是一個簡單的實現(xiàn):
“`cpp
int atoi (const char * nptr)
{
int num = 0;
int flag = 0; //標(biāo)志位,用來確定最后的返回結(jié)果是正是負(fù)
int i = 0;
if (nptr[0] == ‘-‘)
{
//如果第一個字符是“-”,將標(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è)計、制作等服務(wù),是一家以網(wǎng)站建設(shè)為主要業(yè)務(wù)的公司,在網(wǎng)站建設(shè)、設(shè)計和制作領(lǐng)域具有豐富的經(jīng)驗。
新聞名稱:函數(shù)linux下atoi函數(shù)簡介(linuxatoi)
當(dāng)前地址:http://m.fisionsoft.com.cn/article/dhchhsg.html


咨詢
建站咨詢
