如何自实现atoi函数(C/C++)

来源:互联网 发布:mac关闭显示隐藏文件 编辑:程序博客网 时间:2024/05/17 10:40
#include<iostream>#include<cstdlib>#include<cctype>using namespace std;int my_atoi(const char* p){    if(p!=NULL)    {         bool neg_flag=false;//标记正负        int res=0;//记录结果        if(p[0]=='+'||p[0]=='-')            neg_flag=(*p++ != '+');        while(isdigit(*p))            res=res*10+(*p++ - '0');        return neg_flag?0-res:res;    }}int main(){    int a=my_atoi("-123.05");    cout<<a<<endl;    return 0;}

上面一段代码实现了库函数atoi函数的功能( 把字符串转换成整型数。)

其实原理就是:

先判断第一个字符为‘+’还是为‘-’,得出转换之后数的正负,之后一个字符的转换,当遇见不是数字的字符就结束转换(如小数点)