简单的实现atoi函数

来源:互联网 发布:mysql排序语句主次 编辑:程序博客网 时间:2024/06/03 21:03

    一、原型:

             int atoi(const char *nptr);
二、函数说明
           参数nptr字符串,如果第一个非空格字符存在,是数字或者正负号则开始做类型转换,之后检测到非数字(包括结束符 \0) 字符时停止转换,返回整型数。否则,返回零,
头文件: #include <stdlib.h>
三、函数简单实现:
#include <iostream>using namespace std;isspace(int x){if(x==' '||x=='\t'||x=='\n'||x=='\f'||x=='\b'||x=='\r')return 1;else  return 0;}isdigit(int x){if(x<='9' && x>='0')         return 1; else return 0;}int My_atoi(const char *nptr){int c;              /* current char */int total;          /* current total */int sign;           /* if '-', then negative, otherwise positive */                    /* skip whitespace */while ( isspace((int)(unsigned char)*nptr) )++nptr;c = (int)(unsigned char)*nptr++;sign = c;                               /* save sign indication */if (c == '-' || c == '+')c = (int)(unsigned char)*nptr++;    /* skip sign */total = 0;while (isdigit(c)) {total = 10 * total + (c - '0');     /* accumulate digit */c = (int)(unsigned char)*nptr++;    /* get next char */}if (sign == '-')return -total;elsereturn total;   /* return result, negated if necessary */}int main(){char str[256];cout<<"请输入要转化为整数的字符串:";cin>>str;cout<<"转化为整数后输出是:";cout<<My_atoi(str)<<endl;return 0;}



0 0
原创粉丝点击