문자열을 저장하기 위한 자료형이 있어야 할 것 같죠? 그러나 C 언어에서는 문자열을 저장하기 위한 특별한 자료형을 제공하지 않습니다. C 언어에서는 문자 하나만을 저장할 수 있는 char형 변수를 사용하여 문자열까지 저장해야 합니다.
문자열을 저장하는 첫 번째 방법은 char 자료형과 배열의 조합으로 가능합니다. 두 번째 방법은 8장에서 배울 포인터를 사용하는 것입니다. 이번 장에서는 첫 번째 방법만 알아보겠습니다. 먼저 “Hi, Woojin!” 문자열을 저장해 볼까요?
“Hi, Woojin!”에서 우리가 저장할 문자는 몇 개일까요? 8개일까요?
콤마(,)와 느낌표(!)도 하나의 문자입니다. 그럼 10개일까요? 공백도 문자입니다. 그럼 11개 군요!
그렇습니다.. 우리가 저장할 문자는 11개이지만, 정확하게는 12개입니다. 나머지 하나는 바로 문장의 끝을 의미하는 널 문자(NULL character)입니다. NULL 또는 ‘\0’이라고 표기합니다.
문자열을 저장할 때는 반드시 ‘\0’ 즉, 널 문자를 저장해야 합니다. 그렇지 않으면 해당 배열의 문자열 다음에 저장된 문자와 연결되어 하나의 문자열로 인식할 수 있기 때문입니다. 컴파일러에 널 문자를 사용하여 “나의 문자열의 끝이 여기다!”라고 정확하게 알려줘야, 컴파일러는 문자열을 정확하게 구분할 수 있기 때문입니다. 컴파일러는 널 문자를 만나면 문장의 끝으로 인식합니다.