'2014/03'에 해당되는 글 1건

  1. 2014.03.17 strtol() 정수 문자열을 진수 선택하여 정수로 변환

설명

숫자 문자열을 long형 숫자로 변환합니다. atoi()나 atol()과는 달리 (1) 변환하려는 진수를 선택할 수 있으며, (2) 숫자 문자가 아닌 문자를 만나면 그 포인터 위치를 구해 줍니다.

예로, "2007forum.falinux.com" 을 호출하게 되면,

   char   *str;
   char   *ptr;
   long    value;

   str   = "2007forum.falinux.com";
   value = strtol( str, &ptr, 10);
  • value에는 2007이 들어 가고
  • ptr에는 숫자로 변화하지 못하는 문자열의 시작 위치를 구해 줍니다.
    만약 NULL을 넘겨주면 시작 위치를 구하지 않습니다.

헤더 stdlib.h
형태 long strtol(const char *restrict str, char **endptr, int base);
인수
char *str 정수로 변환할 문자열
char **endptr 숫자로 변경하지 못하는 문자열의 시작 위치
int base 문자열이 가지고 있는 숫자의 진수 (2~32)
반환
long 10진 long형 정수 값

예제

#include <stdio.h>
#include <stdlib.h>

int main( void)
{
   char   *str;
   char   *ptr;
   long    value;

   str   = "2007forum.falinux.com";
   value = strtol( str, &ptr, 10);          // 10진수로 변환
   printf( "%s strtol =%ld    str=%s\n", str, value, ptr);

   value = strtol( str, &ptr, 8);           // 8진수로 변환
   printf( "%s strtol =%ld    str=%s\n", str, value, ptr);

   value = strtol( str, &ptr, 16);          // 16진수로 변환
                                            // 2007f까지 숫자로 변환이 됩니다.
   printf( "%s strtol =%ld    str=%s\n", str, value, ptr);

   return 0;
}
]$ ./a.out
2007forum.falinux.com strtol =2007    str=forum.falinux.com
2007forum.falinux.com strtol =1031    str=forum.falinux.com
2007forum.falinux.com strtol =131199    str=orum.falinux.com

 

출 처 : http://forum.falinux.com/zbxe/index.php?document_srl=408138&mid=C_LIB

'Programming > C' 카테고리의 다른 글

strtol() 정수 문자열을 진수 선택하여 정수로 변환  (0) 2014.03.17
sscanf  (0) 2014.02.10
strerror() 함수  (0) 2013.12.04
c99 표준 tagged structure initialization  (0) 2011.06.16
win32 DLL에서 CString 사용하기!  (0) 2009.05.11
 «이전 1  다음»