음수 표기하고자 하면 첫번째 원소가 - 와야됨.
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;
}
'프로그래밍 언어 > C++' 카테고리의 다른 글
[C] 문자열에서 특정 문자 변경, 제거 그리고 중복 제거 (0) | 2023.12.13 |
---|---|
[C] 함수의 포인터 / 배열 매개변수 (0) | 2023.12.11 |
[C++] char형 데이터 int형으로 변환하기 (0) | 2023.12.11 |
[C++] 범위 (Scope) (0) | 2023.12.08 |
[C++] string 타입 문자열을 Split (분할)하기 (0) | 2023.12.06 |