剑指offer------写程序时需要考虑的小tips

今天看剑指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 !

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值