반응형

strtol 함수를 사용하면 진법으로 표기된 문자열을 정수로 변환시켜준다.

strtol 함수는 stdlib.h 헤더 파일에 선언되어 있다.

 

strtol(문자열, 끝포인터, 진법); 으로 사용된다.

 

 

strtol(s1, NULL, 16); 에서 16은 16진법으로 표기된 문자열을 정수로 변환해준다.

16대신에 10을 넣어주면 10진법으로 표기된 문자열을 정수로 변환할 수 있다.

 

두번째 인수 NULL 은 여러 개의 정수로 된 문자열을 변환할 때 사용한다.

처음에는 num1 = strtol(s1, &end, 16);와 같이 s1의 첫 부분을 정수로 변환한다.

여기서 끝 포인터는 &end처럼 end의 메모리 주소를 넣어준다.

이렇게 하면 strtol 함수가 실행된 뒤에는 끝 포인터가 " 12 0x11C 7561"처럼 이전 숫자의 끝 부분부터 시작하게 된다.

 

두번째부터는 num2 = strtol(end, &end, 10);와 같이 end를 넣어주어 이전 숫자의 끝 부분부터 변환하면 된다.

더 변환할 문자열이 없다면 num4 = strtol(end, NULL, 10);와 같이 NULL을 넣어주면 됨.

반응형

+ Recent posts