알고리즘 & 자료구조/알고리즘&자료구조

int 숫자를 char 숫자로 변환

알 수 없는 사용자 2016. 4. 10. 00:52

진즉부터 올릴려고 하던걸 이제서야.... OTL....

컬러스크립트 사용방법이 아직 익숙하지 않은듯.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
char itoc(int a) 
       return a + 0x30
       // 0x30 is usable for number of ascii code  
}
 
char* itoc(int a, char* array_) 
       int temp = a; int cnt = 0;   // 자릿수 세기 
       while (temp > 0)  
       {  
              temp = temp / 10;  
              ++cnt; 
       } 
       temp = a;
 
       for (int i = 0; i != cnt; ++i) 
       {  
              *(array_ + cnt - 1 - i) = itoc(temp % 10);  
              temp = temp / 10
       } 
       return array_;
}
 
cs

 

1. 한자리 숫자 변환하기 (1~5)

우선 int 숫자가 한자리 인것을 변환해준다.

0x30 만큰의 아스키 코드 값의 차이가 있어서 단순히 더해주는 것으로 하였다.

assert 같은걸로 한자리 이상이면 예외처리를 해주는 것은 왜인지 하지 않았다. -_ -a

 

2. 한자리 이상의 숫가 변환하기 (7~23)

함수 오버로딩을 통하여 char 배열형태포인터를 받기로 하였다.

자릿수 세는 것을 하고싶지는 않았지만, 현재 알고리즘상으로는 자릿수 만큼 돌려야 하기에, 일단 사용을 하는걸로..

19번째 줄이 핵심. 마지막 자리숫자부터 _array의 앞부분에 차근차근 집어 넣었다.

그리고 return array_는 사실 하던 안하던 관계는 엄슴.

 

 

음... 뭔가 100점짜리는 아니지만 짧은 시간에 그냥저냥 클리어 한 느낌이랄까.

 

그럼 안녕~

 

 

Feedback : smile.k06@gmail.com

반응형