新聞中心
atoi(ASCII to integer)函數(shù)它把字符串中的字符(第一個(gè)字符必須為數(shù)字)轉(zhuǎn)換為int型數(shù),只處理十進(jìn)制數(shù)。如果數(shù)值太大,超出了范圍,atoi函數(shù)就返回LONG_MAX或者LONG_MIN。

atoi函數(shù)用法:
int atoi (const char *str);
atoi函數(shù)示例:
int num;
num=atoi(“12345”);
運(yùn)行結(jié)果:
num的值為12345
實(shí)際上atoi函數(shù)的核心需要遍歷字符串里的每個(gè)字符,也就是遍歷字符串中的每一位數(shù)字,將其拆分出來,然后每位數(shù)字的值*10的n次方,然后進(jìn)行累加,最后得到的就是整數(shù)值。具體的實(shí)現(xiàn)代碼如下:
int atoi(const char* str)
{
int result = 0; //最終返回的結(jié)果
int minus = 0; // 用來記錄是否為負(fù)數(shù)
int pos = 0; // 用來記錄是否有正負(fù)號(hào),如果有且有數(shù)字,則pos=1
// 遍歷計(jì)算字符串
while(*str != ‘\0’)
{
if(*str == ‘-‘ && pos == 0)
// 如果是負(fù)號(hào),則把minus = -1;表示此數(shù)為負(fù)數(shù)
minus = -1;
else if(‘0’
{
// *str乘以10的n次方 ( n為字符串的當(dāng)前位下標(biāo) )
result = result*10 + (*str – ‘0’);
pos = 1; //記錄已經(jīng)有數(shù)字
}
else if(pos == 0)
// 如果非數(shù)字非負(fù)號(hào),直接返回
return 0;
str++;
}
return minus == -1 ? -result : result;
}
總結(jié)后,可以看出,linux函數(shù)atoi的功能是把字符串中的字符轉(zhuǎn)換為int型數(shù),使用這個(gè)函數(shù)把字符串轉(zhuǎn)化為整型數(shù)數(shù)字可以大大減少我們編程的工作量,以及節(jié)省空間和時(shí)間上的浪費(fèi)。
成都創(chuàng)新互聯(lián)建站主營:成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開發(fā)制作等網(wǎng)站服務(wù)。
分享題目:Linux函數(shù)atoi的功能簡介(linuxatoi)
當(dāng)前路徑:http://www.dlmjj.cn/article/cccgeps.html


咨詢
建站咨詢
