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

+ Recent posts