您的位置:首页 > 其它

简单的实现atoi函数

2014-10-08 10:41 176 查看


一、原型:

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;
else
return total;   /* return result, negated if necessary */
}

int main()
{
char str[256];
cout<<"请输入要转化为整数的字符串:";
cin>>str;
cout<<"转化为整数后输出是:";
cout<<My_atoi(str)<<endl;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: