C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 팁&트릭
C++Builder Programming Tip&Tricks
[657] 16진수등의 숫자 문자열을 정수형으로 바꾸기.
김태선 [cppbuilder] 8756 읽음    2007-06-06 09:53
유광희님 홈피에서 보고 실험하고 올립니다.

보통 16진수 문자열를 변환할때 또는 10진수 문자열을 변환하되 연속으로 바꾸어야 하는 경우
sscanf 함수로 변환하거나, 그냥 직접 변환 루틴을 만들거나 합니다.
실무에서는 적잖게 쓰이는 16진수나 10진수 문자열의 int 형으로의 변환 문제는
때로 작업하는게 귀잖을때가 있습니다.
어렵지는 않지만 괜히 손이 여러번 가고 동작을 또 확인해야 하고...

이럴때 strtoul 함수(string  to unsinged long) 를 이용하면 편리합니다.
vcl.h 만 include 한 상태에서 쓸수 있습니다.
//---------------------------------------------------------------------------

void __fastcall TForm1::FormCreate(TObject *Sender)
{
    int  Radix = 16;
    char *endptr;
    int Output1 = strtoul("8000 A0", &endptr, Radix);
    Caption = String(Output1) + "-" + endptr;
}
//---------------------------------------------------------------------------
캡션에는
32768- A0
가 찍힙니다.
endptr은 8000 다음의 문자인 스페이스 문자를 가르키고 있어
다음 것을 파싱하기도 편리합니다.

raidx는 문자열이 어느 진수로 된 것인가를 가르킵니다.
16은 곧 16진수이고, 8이면 8진수 10이면 10진수 2면 2진수 등이죠...

지금까지 일일이 변환 루틴을 만들었는데... ㅡ..ㅡ;
아주 쬐끔 편리해 질 것 같군요.

자매품 strtol 함수(string to long) 함수도 있습니다.

+ -

관련 글 리스트
657 16진수등의 숫자 문자열을 정수형으로 바꾸기. 김태선 8756 2007/06/06
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.