atoi:将字符串转换成整型数;atoi()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负号才开始做转换,而再遇到非数字或字符串时('\0')才结束转化,并将结果返回(返回转换后的整型数)。
/*
email:shenganbeiyang@163.com
QQ:501968942
*/
#include "iostream"
using namespace std;
void atoi(const char * inputStr,int &iResult);
int main()
{
int test=0;
atoi(" -1s23",test);
cout<<test;
}
void atoi(const char * inputStr,int &iResult)
{
int i=0;
int signBit=1;
if(inputStr==0) throw "Invalid Address";
while(inputStr[i]==' ')//跳过空格
++i;
if(inputStr[i]=='+')//跳过+号
++i;
if(inputStr[i]=='-') {signBit=-1;++i;}//跳过-号,并且记录负数
while(inputStr[i]!='\0')
{
if(inputStr[i]>=48&&inputStr[i]<=57)
{
iResult*=10;//数字字符增10倍
iResult+=(inputStr[i]-48);
++i;
}
else
break;
}
iResult=signBit*iResult;//处理符号
}
测试结果:
1964

被折叠的 条评论
为什么被折叠?



