将字符串转换成整数

原创 2015年07月06日 22:29:04
#include <iostream>
using namespace std;
enum Status {kValid = 0, kInvalid};
int g_nStatus = kValid;

///////////////////////////////////////////////////////////////////////
// Convert a string into an integer
///////////////////////////////////////////////////////////////////////
int StrToInt(const char* str)
{
    g_nStatus = kInvalid;
    long long num = 0;

    if(str != NULL)
    {
        const char* digit = str;

        // the first char in the string maybe '+' or '-'
        bool minus = false;
        if(*digit == '+')
            digit ++;
        else if(*digit == '-')
        {
            digit ++;
            minus = true;
        }

        // the remaining chars in the string
        while(*digit != '\0')
        {
            if(*digit >= '0' && *digit <= '9')
            {
                num = num * 10 + (*digit - '0');

                // overflow
                if(num > std::numeric_limits<int>::max())
                {
                    num = 0;
                    break;
                }

                digit ++;
            }
            // if the char is not a digit, invalid input
            else
            {
                num = 0;
                break;
            }
        }

        if(*digit == '\0')
        {
            g_nStatus = kValid;
            if(minus)
                num = 0 - num;
        }
    }

    return static_cast<int>(num);
}


int main()
{
    char a[100];
    char *p;
    p = a;
    cout<<"请输入字符串:";
    cin>>p;
    int num = StrToInt(p);
    if (!g_nStatus) {
        cout<<"转换后得到整形为:"<<num;
    }
    else
        cout<<"转换失败!";
}

字符串转换成整数

  • 2017年08月09日 21:59
  • 498B
  • 下载

c语言,字符串转换成整数

c语言的数字字符串转换为整数,1.可接受“123 2123”处理为1232123;2.空指针、正负号、非纯数字字符串、数据越界溢出的错误处理。...

5-1 字符串转换成十进制整数 (15分) (这是补上的7月6号)

5-1 字符串转换成十进制整数   (15分) 输入一个以#结束的字符串,本题要求滤去所有的非十六进制字符(不分大小写),组成一个新的表示十六进制数字的字符串,然后将其转换为十进制数后输出。如果...

49、把字符串转换成整数

将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0...
  • buki26
  • buki26
  • 2017年06月13日 10:52
  • 95

关于atoi字符串转换成int整数的一些问题

http://blog.csdn.net/silvergingko/article/details/6070138 在编程中,经常需要将一个字符串中包含的数字转换成整数进行处理。标准C函数a...

《编程之法》1.4字符串转换成整数

题目描述:输入一个由数字组成的字符串,请把它转换成整数输出 分析:int型整数的范围为:-2147483648~+2147483647,这意味着字符串输入太长会没办法正常显示数字,故当转换后的数大于...

每日一题(57) - 把字符串转换成整数

题目来自剑指Offer 题目:把字符串转换成整型数,与库函数atoi的功能类似。 原型: int atoi(const char *nptr); 举例: "123" : 123 "-123" : -1...

将字符串转换成整数[Java]

题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0  输入描述: 输入一个字符串,包括数字字母符号,可以为空 ...

[Java] 自己实现字符串转换成整数

在CSDN首页上看到一个题,看着觉得很简单,就来做着试试看。结果提交以后提示挑战失败!!! 天理何在,给的测试用例全部能通过呀!囧。。。 下面附上我的实现代码吧,有点暴力,我想用Java正则表达式...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将字符串转换成整数
举报原因:
原因补充:

(最多只允许输入30个字)