강좌 & 팁
글 수 2,412
2015.10.27 18:23:58 (*.39.166.80)
46980
C언어 함수 중 진법에 맞추어 문자열을 숫자로 바꾸어 주는 strtol()함수가 있습니다.
그런데 이 편한 함수를 모르시는 분이 많은 것 같아요.
학습할 때는 알고 있었지만, 자주 사용하는 함수가 아니어서 잊어 버리는 것 같습니다.
아래의 예는 "0x"로 시작하는 문자열이면 16진수로,
그냥 숫자라면 10진수로 반환해 주는 함수입니다.
static int str_to_number( char *p_str)
{
char *p_temp;
int rst;
if ( 0 == strncasecmp( p_str, "0x", 2)) {
rst = strtol( p_str+2, &p_temp, 16);
if ( p_str+2 == p_temp){
rst = -1;
}
} else
rst = atoi( p_str);
return rst;
}