atoi 함수는
char Arr[10] = "987654"
int Value
Arr배열의 "987654"를 int형인 987654로 변환해주고
itoa 함수는
char Arr[10]
int Value = 987654
int 987654를 Arr배열에 "987654"로 바꿔주는 함수이다.
아래 코드와 같이 구현해보았다.
#include "pch.h"
#include <iostream>
int StringToInt(char* _char)
{
int value = 0;
while (*_char) // NULL까지
{
value = (value * 10) + *_char - '0';
// 자리수를 올려주며 수를 가져옴 char(숫자(0~) - 0char(숫자(0)) int숫자.
_char++; // 다음 문자 주소로 넘김
}
return value;
}
void IntToString(int _num, char* _char)
{
int i = 0;
int radix = 10; // 진수
int deg = 1; // 자리수 만약 12345가 들어오면 10000가될거고
int count = 0; // 자리수 count는 4가될거다.
while (1) // 자리수의 수를 뽑는다
{
if ((_num / deg) > 0)
{
count++;
}
else
{
deg /= radix; //한자리수 더 높게 연산되어 한번 나누어준다.
break;
}
deg *= radix;
}
for (i = 0; i < count; i++) // 자리수만큼 순회
{
*(_char + i) = _num / deg + '0'; //가장 큰 자리수 12345면 배열0번째 자리에 12345 / 10000 = int 1
_num -= ((_num / deg) * deg); //12345 - ((12345 / 10000) * 10000) = 2345
deg /= radix; //10000 / 10 = 1000
}
*(_char + i) = '\0'; // 문자열의 끝은 NULL
}
int main()
{
char Arr[10] = "987654";
int Value = StringToInt(Arr);
printf_s("%d\n", Value);
int Value2 = 456789;
char Arr2[10];
IntToString(Value2, Arr2);
printf_s("%s\n", Arr2);
}
'게임 프로그래밍 > C++ 기초' 카테고리의 다른 글
C++ for (반복문) (0) | 2019.01.25 |
---|---|
C++ SWITCH CASE (제어문) (3) | 2019.01.25 |
C++ IF (조건문) (0) | 2019.01.24 |
C++ 논리연산자 (0) | 2019.01.23 |
C++ 비교연산자 (0) | 2019.01.23 |