题目描述:输入一个表示整数的字符串,把该字符串转换成整数并输出。例如输入字符串“345”,则输出整数345 。
思路:依次扫描字符串,每扫描到一个字符,就把之前得到的数字乘以10再加上当前字符表示的数字。但是整数可能不仅仅只含有数字,还有可能以“+”或“-”开头,表示整数的正负,所以需要把字符串的第一个字符做特殊处理。还要考虑非法输入:
1.需要判断指针是否为空;
2.输入的字符串中可能含有不是数字的字符,每当碰到非法的字符,转换停止;
3.溢出为题,若溢出,则返回0。
C++代码实现:
#include<iostream>
#include<limits>
using namespace std;
enum Status{
kValid = 0,kInvalid};
int g_nStatus = kValid;//标志是否到达字符串结束符'\0'
int StrToInt(const char* str)