软件工程师面试100题(算法)之把字符串转换成整数

程序员面试100题(算法)之把字符串转换成整数

此程序还没有判读sum是否溢出,待续。。

// 程序员面试100题(算法)之把字符串转换成整数

#include "stdafx.h"
#include <iostream>

using namespace std;

int state = 0;

int ConvertStr(char *str)
{
	int num = 0;
	long sum = 0;

	if(NULL == str)
	{
		cout << "input is empty" << endl;
		state = 1;
	}
	else
	{
		char symbol = *str;

		if(symbol == '+' || symbol == '-')
		{
			str++;
		}

		while(*str != '\0')
		{
			if(*str >= '0' && *str <= '9')
			{
				num = *str - '0';
				sum = sum * 10 + num;
				str++;
			}
			else
			{
				state = 1;
				break;
			}
		}

		if(symbol == '-')
		{
			sum = 0 - sum;
		}
	}

	return sum;
}

int _tmain(int argc, _TCHAR* argv[])
{
	char *str = "-5462458";
	long number = ConvertStr(str);
	if(1 == state)
		cout << "Wrong input" <<endl;
	else
		cout << number << endl;

	return 0;
}