프로그래밍 언어/C++

[C++] atoi (char > int 형변환) / stoi (string > int 형변환) 함수 구현

ShovelingLife 2023. 12. 11. 13:46

음수 표기하고자 하면 첫번째 원소가 - 와야됨.

int Atoi(char* str)
{
	int sign = 1, data = 0;
	char cur = *str;

	if (cur == '\n')
		return 0;

	if (cur == '-')
		sign = -1;

	while (cur != '\0')
	{
		cur = *str++;

		if (cur >= '0' &&
			cur <= '9')
			data = data * 10 + (cur - '0');
	}
	return data * sign;
}

 

아래는 개인코드

int Stoi(string str)
{
	int sign = 1, data = 0;

	if (str.empty())
		return 0;

	if (str[0] == '-')
		sign = -1;

	// 널문자로 인해 -1
	auto begin = str.begin(), end = str.end() - 1;

	do
	{
		auto cur = *begin;

		if (cur >= '0' &&
			cur <= '9')
			data = data * 10 + (cur - '0');

	} while ((begin++) != end);
	return data * sign;
}

 

Sw.Dev :: [C/C++] atoi()를 구현해보자!! (tistory.com)