컴퓨터 엑셀 워드 포토숍 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Previous Post 한글 확장 완성형 문자열 헥사 덤프, 16진수로 변환; Hangul Hex Dump엑셀/MS워드 VBA매크로] 현재 날짜, 시간 출력 함수; Excel Word Date T...C언어] 숫자 정수 int 배열 정렬(소트Sort소팅) 역순/내림차순 정렬C언어] 문자열 배열 정렬(소트;Sort)역순 소팅, qsort 함수 사용법한글주소(URL)인코딩(encode, Encoding), 자바스크립트(JavaScript)...encodeURI, encodeURIComponent, escape 함수 차이점; 자바스크...Perl C언어 자바(Java), 문자열 바꾸기 Replace String리눅스 명령어 결과 저장; 실행 화면 텍스트 파일로; Linux Unix Output to...울트라에디트 함수 목록 보기 핫키, UltraEdit 울트라 에디터 팁; View Func...CSV 에디터; CSV 파일 읽기, 열기, 편집 프로그램은?, CSV Editor

C언어] 영문 문자열 헥사(Hex) 덤프, 16진수로 변환 출력; String Dump

Wednesday, October 25, 2006

문자열의 정확한 구조를 알아야 할 때나, 문자열의 끝이 널문자(\0)로 정확히 끝나는지 궁금할 때, dumpString() 함수로 문자열을 아스키 코드로 출력해 볼 수 있습니다. 영문이나 숫자 등의 1바이트 문자용입니다.

한글 등의 2바이트 문자를 완성형 코드로 덤프하는 방법은 여기에 있습니다: ▶▶ 한글 확장 완성형 문자열 헥사 덤프, 16진수로 변환; Hangul Hex Dump


문자열을 헥사(Hex) 아스키 코드로 출력 예제 소스


파일명: strdump_to_hex.cpp
#include <stdio.h>
#include <string.h>

void dumpString(char *s);


void main(void) {
  char s[] = "ABCDEFG 123";

  dumpString(s);
}


void dumpString(char *s) {
  size_t arraySize = strlen(s) + 1; // strlen 함수는 행끝의 null 문자는 세지 않기에, 플러스 1

  printf("문자열 배열: %s\n", s);
  printf("배열의 바이트 수: %d\n", arraySize);

  for (size_t i = 0; i < arraySize; i++)
    printf("[%2d] %c = 0x%02X\n", i, s[i], *(s+i));

}



실행 결과 화면:
D:\Z>cl strdump_to_hex.cpp && strdump_to_hex.exe
Microsoft (R) 32-bit C/C++ Optimizing Compiler Version 13.10.3077 for 80x86
Copyright (C) Microsoft Corporation 1984-2002. All rights reserved.

strdump_to_hex.cpp
Microsoft (R) Incremental Linker Version 7.10.3077
Copyright (C) Microsoft Corporation. All rights reserved.

/out:strdump_to_hex.exe
strdump_to_hex.obj
문자열 배열: ABCDEFG 123
배열의 바이트 수: 12
[ 0] A = 0x41
[ 1] B = 0x42
[ 2] C = 0x43
[ 3] D = 0x44
[ 4] E = 0x45
[ 5] F = 0x46
[ 6] G = 0x47
[ 7]   = 0x20
[ 8] 1 = 0x31
[ 9] 2 = 0x32
[10] 3 = 0x33
[11]   = 0x00


단, 출력 결과를 갈무리할 때, 좀 문제가 생깁니다.
[11]   = 0x00
이 부분이 잘 보이지 않을 것입니다. 왜냐하면 문자열의 끝을 의미하는 널문자 '\0' 가 들어 있기 때문입니다. (줄바꿈 문자와는 전혀 다른 것입니다.) 캡처해서 사용하려면, 보이지 않는 널문자를 공백 문자로 바꾸어 주어야 합니다.


☞ C/C++

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Categories
Previous Posts
Monthly Archives
Top