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

C++빌더 Q&A
C++Builder Programming Q&A
[59949] Re:strtok와 while 관련 가르쳐주세요.
둘리.CSIEDA [dooly386] 4076 읽음    2010-01-25 10:21
char *Hex = strtok(HexStr, " ");     <<-- 여기서 첫번째것이 나옵니다.
while ((Hex = strtok(NULL, " ")) != NULL)   <<-- 그러니 여기서 두번째부터 나오죠.

do while 문으로 고치시거나 기타 다른 방법으로 처음것을 처리하도록 해야 합니다.


박정용 님이 쓰신 글 :
: "48 65 6C 6C 6F 20 57 6F 72 6C 64 21"라는 Hex값과 사이띄게로 이뤄진 문자열을 사이띄게를 기준으로 잘라서 각Hex값을 Hex값과 10진 int값과 해당 Ascii코드값에 해당하는 char값을 출력하려고 하는데, while문에서 48 값이 생략됩니다.
: 뭐가 문제일까요?
:
: 출력값
: =================================================
:
: hexadecimal value = 65, int value = 101, char value=e
: hexadecimal value = 6C, int value = 108, char value=l
: hexadecimal value = 6C, int value = 108, char value=l
: hexadecimal value = 6F, int value = 111, char value=o
: hexadecimal value = 20, int value = 32, char value=
: hexadecimal value = 57, int value = 87, char value=W
: hexadecimal value = 6F, int value = 111, char value=o
: hexadecimal value = 72, int value = 114, char value=r
: hexadecimal value = 6C, int value = 108, char value=l
: hexadecimal value = 64, int value = 100, char value=d
: hexadecimal value = 21, int value = 33, char value=!
:
: Process returned 0 (0x0)   execution time : 0.312 s
: Press any key to continue.
: =================================================
:
: #include <iostream>
: using namespace std;
:
: char HexChar2Bin(char *HexStr);
: int Hex2Dec(char ch);
: int main()
: {
:     HexChar2Bin("48 65 6C 6C 6F 20 57 6F 72 6C 64 21");
:
:     return 0;
: }
:
: char HexChar2Bin(char HexStr[])
: {
:     char *Hex = strtok(HexStr, " ");
:  while ((Hex = strtok(NULL, " ")) != NULL)
:  {
:         int value;
:         value = (int)Hex2Dec(Hex[0])*16+Hex2Dec(Hex[1]);
:         char charValue = (char)value;
:
:         cout << "hexadecimal value = "<< Hex << ", int value = " << value
:              << ", char value=" << charValue << endl;
:     }
:     return 0;
: }
: int Hex2Dec(char ch)
: {
: if(ch >= '0' && ch <= '9') return (int)(ch - '0');
: if(ch >= 'A' && ch <= 'F') return (int)(ch - 'A' + 10);
: if(ch >= 'a' && ch <= 'f') return (int)(ch - 'a' + 10);
: return 0;
: }

+ -

관련 글 리스트
59946 strtok와 while 관련 가르쳐주세요. 박정용 3780 2010/01/25
59949     Re:strtok와 while 관련 가르쳐주세요. 둘리.CSIEDA 4076 2010/01/25
59948     Re:strtok와 while 관련 가르쳐주세요. 한수동 4576 2010/01/25
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.