C strtoul() 정수 문자열을 진수 선택하여 unsigned long형 정수로 변환 함수
C언어 숫자 변환 함수 strtoul()은 숫자 문자열을 unsigned long형 숫자로 변환합니다.
- 헤더: stdlib.h
- 형태: unsigned long int strtoul(const char *restrict str, char **endptr, int base)
- 인수: char *str 정수로 변환할 문자열
char **endptr 숫자로 변경하지 못하는 문자열의 시작 위치
int base 문자열이 가지고 있는 숫자의 진수 - 반환: unsigned long int 10진 long형 정수 값
strtoul()은 atoi()나 atol()과는 달리 (1) 변환하려는 진수를 선택할 수 있으며, (2) 숫자 문자가 아닌 문자를 만나면 그 포인터 위치를 구해 줍니다.
예로, "2020badayak.com" 을 호출하게 되면,
char *str;
char *ptr;
long value;
str = "2020badayak.com";
value = strtoul( str, &ptr, 10);
- value에는 2020이 들어 가고
- ptr에는 숫자로 변화하지 못하는 문자열의 시작 위치를 구해 줍니다.
만약 NULL을 넘겨주면 시작 위치를 구하지 않습니다.
C언어 strtoul() 함수 예제
#include <stdio.h>
#include <stdlib.h>
int main( void)
{
char *str;
char *ptr;
unsigned long value;
str = "2020badayak.com";
value = strtoul( str, &ptr, 10); // 10진수로 변환
printf( "%s strtoul =%lu str=%s\n", str, value, ptr);
value = strtoul( str, &ptr, 8); // 8진수로 변환
printf( "%s strtoul =%lu str=%s\n", str, value, ptr);
value = strtoul( str, &ptr, 16); // 16진수로 변환
// 2020bada까지 숫자로 변환이 됩니다.
printf( "%s strtoul =%lu(0x%lx) str=%s\n", str, value, value, ptr);
return 0;
}
C언어 strtoul() 예제 실행 결과
]$ ./a.out
2020badayak.com strtoul =2020 str=badayak.com
2020badayak.com strtoul =1040 str=badayak.com
2020badayak.com strtoul =539015898(0x2020bada) str=yak.com
]$
'컴퓨터 > 프로그래밍' 카테고리의 다른 글
C언어 strtod 함수 실수 문자열을 double형 실수로 변환 (0) | 2020.03.12 |
---|---|
C언어 strtol 함수 정수 문자열을 진수 선택하여 정수로 변환 (4) | 2020.03.12 |
C언어 atof 함수 10진 실수 문자열을 double형 변환 (0) | 2020.03.12 |