今天看剑指offer第三章时开头提到了面试官在面试中看重应聘着所写程序的几点,其中就有关于写程序时应该列入考虑范围的一些东西。 1、正常的输入处理。 2、边界值的处理。 3、错误的输入处理。
示例:编写一个将字符串转化成整数的程序。
代码:
#include
#include
using namespace std;
bool stringToint(const char * s, int &num)
{
int cur = 0, temp = 0, flag = 1;
bool illegal = true;
vector numstack;
if(s[cur] == '-')
{
flag = -1;
cur++;
}
else if(s[cur] == '+')
cur++;
while(s[cur] != '\0')
{
temp = s[cur] - '0';
if(temp > 0 && temp < 10)
numstack.push_back(temp);
else if(temp != 0)
{
illegal = false;
return illegal;
}
cur++;
}
if(numstack.empty())
numstack.push_back(0);
int mult = 1, sum = 0;
while(!numstack.empty())
{
sum += numstack.back()*mult;
mult *= 10; numstack.pop_back();
}
num = flag*sum;
return illegal;
}
int main()
{
const char *a[4];
a[0] = "+123";
a[1] = "-123";
a[2] = "0000";
a[3] = "abc";
int num, i = 0;
while(i != 4)
{
if(stringToint(a[i], num))
cout << num << endl;
else
cout << "illegal input!" << endl; i++;
}
return 0;
}
输出:
123
-123
0
illegal input !