int fun(char [ ] );
char a[ ]="123";
fun(a);
得到123
#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;
int str_2_int(string str)
{
if (str.size() == 0)
exit(0);
int pos = 0;
int sym = 1;
// 处理符号
if (str[pos] == '+')
pos++;
else if (str[pos] == '-')
{
pos++;
sym = -1;
}
int num = 0;
// 逐位处理
while (pos < str.length())
{
// 处理数字以外的字符
if (str[pos] < '0' || str[pos] > '9')
exit(0);
num = num * 10 + (str[pos] - '0');
// 处理溢出
if (num < 0)
exit(0);
pos++;
}
num *= sym;
return num;
}
int main()
{
string str = "-3450";
int num = str_2_int(str);
cout << num << endl;
return 0;
}
这个是非递归的实现但是面试时递归实现