반응형
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을 넣어주면 됨.
반응형
'<Programming> > <C>' 카테고리의 다른 글
[C언어] 문자열을 정수로 변환하기 (atoi 함수) (0) | 2020.07.17 |
---|---|
[C언어] strtok 함수 (0) | 2020.07.16 |
[C언어] void가 아닌 함수에서의 반환 값 (0) | 2020.07.10 |
[C언어] 문자열 (strlen) (0) | 2020.07.10 |
[C언어] 버블정렬 (0) | 2020.07.07 |