mwultong Blog ... 프로그래밍 / 계산기

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

 
Monday, August 20, 2007

C언어에서 문자열에 null 문자 입력 방법; 널문자 출력


C에서 "null 문자"란 것은 16진수 아스키 코드 ASCII Code0x00, 십진수로는 0번 문자를 의미합니다. 그렇지만 아라비아 숫자 제로(0)는 아닙니다. null 문자는 눈에 보이지 않는 특수 문자입니다. C언어에서 null 은, "문자열의 끝"을 의미합니다. 그래서 문자열에서 널(null)문자 뒤에 있는 문자들은 문자열 출력에서 무시됩니다.

널문자는 '\0' 즉 '백슬래쉬+숫자 영'이라는 이스케이프 시퀀스로 표현합니다. 아래 예제에서 AAA 와 BBB 라는 단어 사이에 널문자가 하나 들어가 있습니다. 그래서 사실상 AAA 가 문자열의 끝입니다. 뒤의 BBB 는 무시됩니다. AAA만 출력됩니다.

어떤 문자열을 정의하면 그 문자열 맨 끝에 널문자가 1개 자동으로 붙습니다. 그래서 아래 예제에서는 실제로는 BBB 뒤에도 \0 이런 null 문자가 보이지 않게 붙어 있습니다.

null 문자 포함된 문자열 출력 예제
예제 소스 파일명: example.cpp
#include <stdio.h>

int main(void) {

  char str[] = "AAA\0BBB";

  printf("%s\n", str);
  // 출력 결과: AAA


// 위의 문자열을 널문자까지 강제로 출력해 보겠습니다.
  for (int i = 0; i < sizeof(str); i++) {
    printf("%c = 0x%02X\n", str[i], str[i]);
  }

/*

화면 출력 결과:
(0x00 이라는 글자들이 끼여 있습니다. 널문자들입니다.)

A = 0x41
A = 0x41
A = 0x41
  = 0x00
B = 0x42
B = 0x42
B = 0x42
  = 0x00

*/


  return 0;
}





tag: cpp
C언어 | C/C++ (Visual C++)

0 Comments:

<< Home RSS 2.0 feed

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