더북(TheBook)

현재 널리 사용되는 플랫폼은 char 타입을 인코딩할 때 ASCII(American Standard Code for Information Interchange)를 사용한다. 기본 문자 집합만 사용한다면 현재 어떤 인코딩 방식을 사용하는지 알 필요가 없다. C와 표준 라이브러리에서 사용하는 문자는 모두 이 인코딩 방식을 따른다.

표준 라이브러리는 char 배열과 스트링을 다루기 위한 함수를 다양하게 제공한다. 이 라이브러리는 string.h 헤더 파일을 통해 제공된다. 배열 인수만 필요한 함수는 mem으로 시작하고, 스트링 인수도 추가로 받는 함수는 str로 시작한다. 예제 6-2는 이런 함수를 사용하는 예다.

 

예제 6-2 스트링 함수 사용 예

#include <string.h>
#include <stdio.h>
int main(int argc, char* argv[argc+1]) {
  size_t const len = strlen(argv[0]); // 길이를 계산한다.
  char name[len+1];                   // VLA를 생성한다.
                                      // 0이 들어갈 자리를 확보한다.
  memcpy(name, argv[0], len);         // 이름을 복제한다.
  name[len] = 0;                      // 문자 0을 넣는다.
  if (!strcmp(name, argv[0])) {
    printf("program name \"%s\" successfully copied\n",
           name);
  } else {
    printf("copying %s leads to different string %s\n",
           argv[0], name);
  }
}
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.