1. 程式人生 > >將字串轉換為整數

將字串轉換為整數

這是一道經典的面試題,在收到這樣一道題時我們不要急於動手,先思考一下這道題的解決思路:

1.在函式呼叫時我們需要用指標來接收陣列的地址,那麼指標是否需要判空?

2.如果獲取的字串起始位出現“+”"-"號該如何處理?

3.如果獲取到的並非數字字串該如何處理?

4.如果獲取的字串正確,該如何返回成整數形式?

5.如過獲取的字串帶符號,返回的整數是否應該變為負數?

理清了思路,下面我們開始寫程式碼

#include<stdio.h>
#include<stdlib.h>
int StrToInt(char *string)
{
	if (string == NULL)
	{
		return 0;
	}
	if (*string == '-' || *string == '+')
	{
		string++;
	}
	int number = 0;
	while (*string != 0)
	{
		if (*string<'0' || *string>'9')
		{
			break;
		}
		number = number*10 + *string - '0';
		string++;
	}
	if (*string == '-')
	{
		number = -number;
	}
	return number;
}

int main()
{
	char str[10];
	gets(str);
	printf("number is %d", StrToInt(str));
	system("pause");
	return 0;
}