Page 305 - Do it! 자료구조와 함께 배우는 알고리즘(C 언어, 3쇄)
P. 305
8-1을 통해 알아보겠습니다. 이 프로그램은 "STRING"을 구성하는 모든 문자의 값을 16진수
와 2진수로 출력합니다.
실습 8-1 •완성 파일 chap08/strdump.c
01 /* 문자열 안의 문자를 16진수와 2진수로 출력합니다. */ 실행 결과
02 #include <stdio.h>
S 53 01010011
03 #include <limits.h> T 54 01010100
04 R 52 01010010
05 /*--- 문자열 안의 문자를 16진수와 2진수로 출력하는 함수 ---*/ I 49 01001001
06 void str_dump (const char *s) N 4E 01001110
07 { G 47 01000111
00 00000000
08 do {
09 int i;
10 printf("%c %0*X ", *s,(CHAR_BIT + 3) / 4, *s);
11 for(i = CHAR_BIT - 1; i >= 0; i--)
12 putchar(((*s >> i) & 1U) ? '1' : '0');
13 putchar('\n');
14 } while(*s++ != '\0');
15 }
16
17 int main (void)
18 {
19 str_dump("STRING");
20 return 0;
21 }
프로그램을 실행하면 위와 같은 결과를 확인할 수 있습니다. 그런데 문자열 리터럴은 내용을 자
유롭게 바꿀 수 없습니다. 자유롭게 읽고 쓰는 문자열은 배열로 구현해야 합니다.
보충수업 8-1 문자열 리터럴
여기서는 문자열 리터럴의 특징을 간단히 알아보겠습니다.
1. 문자열 리터럴의 자료형
문자열 리터럴의 자료형은 char형 배열입니다. 그러나 문자열 리터럴의 표현식을 평가하여 얻는 자료
형은 char *형이고 그 값은 첫 번째 문자에 대한 포인터입니다. 예를 들어 문자열 리터럴 "STRING"을
평가하면 첫 번째 글자 'S'에 대한 포인터를 얻습니다.
08•문자열 검색 305