1. char  to int   

 

 첫 번째 방법은 아스키 코드를 이용하는 방법이다. char 변수는 1 byte 정수이다. 하지만, char 자료형이 정수일지라도 아스키 코드로 해석된다. 아스키 American Standard Code for Information Interchange의 약자로 영어 문자 또는 특수문자를 0에서 127 사이의 숫자(아스키 코드)로 나타낸다. 예를 들어 숫자 0은 코드 48이고 9는 57이다. 그리고 'a' 문자는 코드 97이다. 'b'는 98이다. 

 

 이러한 아스키 코드를 이용하여 char형 데이터를 int 형으로 바꾸는 방법은 48을 빼주는 방법과 '0'을 빼주는 방법이 있는데 예제는 다음과 같다. 

 

// 1. 48을 빼주는 방법

char one = "1";
int num = one - 48;

scanf("%d", num + 3); 		// 4


// 2. '0'을 빼주는 방법

char one = "1";
int num = one = '0';

scanf("%d", num + 4); 		// 5

 

 

   2. char 배열 길이만큼 순회(for)문 돌기   

 

char 배열의 길이만큼 순회(for)문을 도는 방법은 많은데 그 중 두 가지를 소개한다. 첫 번째 방법은 cstring 라이브러리의 함수 strlen()를 쓰는 방법이다. 마지막으로는 데이터가 없는 인덱스의 값이 '\0'임을 이용하는 방법이다. 두 번째 방법은 아래 그림을 참조하면 된다. 

 

 

 두 가지 예제는 다음과 같다.

 

// 1. cstring 라이브러리 strlen() 함수 이용하기

#include <cstring>

char array[51];
scanf("%s", &array);			// g0en2Ts8eSoft 입력

int len = strlen(array);        	// 13

for(int i=0; i<len; i++) {
	// 작업
}


// 2. 값이 없는 index의 값이 '\0'임을 이용하기

char array[51];
int res = 0;
scanf("%s", &array);			// g0en2Ts8eSoft 입력

for(int i=0; array[i] != '\0'; i++) {
	if(a[i]>=48 && a[i]<=57){
		res = res * 10 + (a[i] - 48);
	}
}