// 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;
}
atoi的C++版
最新推荐文章于 2021-09-17 16:22:02 发布