The Pawn language - CompuPhase

문자열

개요

문자열이란 '문자'를 '나열'한 것을 의미합니다. 나열이라는 단어가 사용되었으므로 배열과 연관되어 있다는 것을 느끼실 수 있을겁니다.

원래 변수 하나에는 1개의 데이터만 저장이 가능합니다. 그런데 문자열, 예를 들어 "abcde"의 경우 5글자가 존재합니다. 따라서 5개의 변수가 필요한 것입니다. 더군다나 그냥 변수가 아니라 배열이 필요합니다. 자세한 내용은 아래에서 설명하겠습니다.

배열에 문자열 넣기

우선 10개짜리 배열을 선언하고 문자열을 넣어보겠습니다.

new s[10] = "abcdef";

// 아래와 같이 저장된다
s[0] = 'a';
s[1] = 'b';
s[2] = 'c';
s[3] = 'd';
s[4] = 'e';
s[5] = 'f';
s[6] = '\0';

맨 위 코드는 배열을 선언하고 문자열을 넣어서 초기화 하는 코드입니다.

아래는 실제로 배열 s에 어떤 식으로 문자열이 저장되는지를 풀어서 표현한 것입니다. 글자 하나가 변수 하나에 저장되는 것을 확인할 수가 있습니다.

NULL 문자

위 코드의 특징은 맨 마지막에 '\0' 이라는 낯선 글자가 저장된다는 점입니다. 이것은 NULL 문자, 또는 EOS(End Of String) 라고 부릅니다. NULL의 역할은 문자열의 끝을 표시해 줍니다. 위 코드에서는 배열의 크기가 10임에도 불구하고 6글자만 입력하였습니다. 따라서 나머지 배열 4개는 문자열이 아닌 것입니다. 따라서 10개의 변수 중 '문자열의 끝은 여기까지야' 라고 구분을 지어주는 것이 NULL 문자입니다.

모든 문자열의 끝에는 NULL 문자가 붙어있습니다. 이것은 강력한 프로그래밍 규칙이므로 무조건 따라주셔야 합니다.

모든 문자열의 끝에 NULL 문자가 붙어있어야 하므로, 배열의 크기는 문장 길이보다 1개 더 많아야 합니다. 예를 들어 "ABCDE"의 경우 6칸의 배열이 필요하며, "LOVE"의 경우 5칸이 필요합니다.

댓글

댓글 본문
graphittie 자세히 보기