atoi的C++版

来源:互联网 发布:改之理 java sdk设置 编辑:程序博客网 时间:2024/06/16 21:34
//  main.cpp//  StrToInt////  Created by 陈亚东 on 15/3/10.//  Copyright (c) 2015年 陈亚东. All rights reserved.//#include <iostream>using namespace std;bool VALID = true;long StrToInt(const char* str){    VALID = true;    if (str == NULL || *str == '\0') {        VALID = false;        return 0;    }        bool minus = false;    if (*str == '-') {        minus = true;        ++str;    }    else if (*str == '+') {        minus = false;        ++str;    }        long num = 0;    while (*str != '\0') {        if (*str >= '0' && *str <= '9') {            if (minus) {                num = num * 10 - (*str - '0');            } else {                num = num * 10 + (*str - '0');            }                        if (num > 0x7FFFFFFF || num < (signed int)0x80000000) {                VALID = false;                break;            }                    } else {            VALID = false;            break;        }        ++str;    }        return num;}void test(const char* str){    long result = StrToInt(str);    if (VALID)        cout << "correct : " << result << endl;    else        cout << "error : " << endl;}int main(int argc, const char * argv[]) {    test("12345");    test(NULL);    test("A2134");    test("-2134");    test("0");    test("");    test("12341234123423");    test("-12341234123423");        return 0;}

0 0
原创粉丝点击