프로그래밍 언어/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;
}