80 – 고급 변환 함수

기본 변환 함수에서 봤던 변환은 간단한 정수와 실수만을 변환하였던 것이라면, strtol과 strtoul 함수를 이용하면 변환이 종료된 지점을 알 수 있는 데다가 10진 정수 형태의 문자열 이외에도 처리가 된다. 그 외에도 고급 함수가 있는데 간단히 살펴보면 다음과 같다.

  • 함수이름 | 기능
  • strtol | 특정 진수 형태의 문자열을 정수(long)형으로 변환한다.
  • strtoul | 특정 진수 형태의 문자열을 정수(unsigned long)형으로 변환한다.
  • strtod | 실수 형태의 문자열을 실수(double)형으로 변환한다.
  • strtof | 실수 형태의 문자열을 실수(float)형으로 변환한다.

strtol에 대한 예시는 다음과 같다.

20170427_011816

첫 번째 변환은 10진수 형태의 문자열을 long형 10진수로 변환한 것이다. 두 번째 변환은 8진수 형태의 문자열을 long형 10진수로 변환한 것이다. 세 번째는 진수 판별 자리에 0을 넣어 자동으로 판별하도록 한 것이다. 그런데 문자열 앞에 0이 있기 때문에 8진수로 인식되었다. 마지막으로 16진수 형태로 변환하는데, 16진수에 쓰이는 문자가 아닌 @가 있어서 그 앞의 부분만 변환하고 포인터가 @를 가리킨 상태이다. 그래서 마지막 출력문에 포인터가 가리킨 문자열이 별도로 나온 것이다.

실수 변환에 대해서는 진법을 지정할 수 없으며 10진 실수 형태의 문자열만 처리할 수 있다. 실수 변환에 대한 예제를 보고 설명을 남기겠다.

앞에서 정수를 봤던 것과 거의 같다. 표현을 다 처리하지 못한 부분에 포인터가 지정되어 가는 것까지 완전히 똑같은 구조이다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.