将字符串转换成整数

原创 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<<"转换失败!";
}

递归将整数转字符串

#includevoid invert(int n) { int i; i=n%10; if(n/10) invert(n/10); printf("%...
  • zxiang248
  • zxiang248
  • 2016年03月12日 19:08
  • 297

面试题33:把字符串转换为整数

C语言的库函数atoi()的作用是将一个字符串转换为整数。写一个函数StrToInt,实现这一功能。...
  • htyurencaotang
  • htyurencaotang
  • 2013年09月01日 20:29
  • 5603

C语言 用递归法将一个整数n转换成字符串

#include int main(void) { int n; int enter_n(); void print_n(int n); n=enter_n(); print_n(n);...
  • knuuy
  • knuuy
  • 2015年05月10日 14:26
  • 2757

【C语言】编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)。

/* 编写一个函数,将一个数字字符串转换成该字符串对应的数字(包括正整数、负整数)例如:“12“ 返回12 “-123“ 返回-123 函数原型:int my_atoi(char *str) {...
  • doudouwa1234
  • doudouwa1234
  • 2015年04月02日 13:10
  • 1662

用递归法将一个整数n转换成字符串。

用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。 #include "stdafx.h" #include using names...
  • yanglize
  • yanglize
  • 2015年08月18日 17:19
  • 3744

【剑指offer-Java版】49把字符串转换为整数

字符串转换为整数 : atoi可能的输入: 1 带符号数 2 无符号数 3 零 4 空指针 5 超出表示范围 – 暂时仅仅是直接退出且设置最小 – 可以考虑此时抛个异常 6 非法输入,比如...
  • Sugar_Z_
  • Sugar_Z_
  • 2016年04月27日 09:48
  • 900

用递归法将一个整数n转换成字符串

【描述】 用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”。n的位数不确定,可以是任意位数的整数。 【C语言】 #include void convert(int...
  • u013053957
  • u013053957
  • 2015年07月02日 11:54
  • 5549

递归法将整数转换为字符串

#includevoid trans(int n) { int i; i=n%10; if(n/10>0) trans(n/10); printf("%...
  • zxiang248
  • zxiang248
  • 2016年03月04日 09:43
  • 221

c语言实现将一个整数转换为字符串

#include void convert(int n) { int i; if ((i=n/10)!=0) convert(i); putchar(n%10+'0'); } int ...
  • u012965373
  • u012965373
  • 2015年05月14日 09:51
  • 2386

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

c语言的数字字符串转换为整数,1.可接受“123 2123”处理为1232123;2.空指针、正负号、非纯数字字符串、数据越界溢出的错误处理。...
  • u010127332
  • u010127332
  • 2016年07月08日 21:26
  • 1742
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:将字符串转换成整数
举报原因:
原因补充:

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