문자 문자열
문자 문자열 (Character strings)
C 계열 언어가 문자열을 백슬래시 이스케이프로 다루는 것과 달리, Pascal은 문자열을 작은따옴표로 감싸고 특수 문자를 #숫자 형태로 넣는 독특한 방식을 써요. 이번 절에서는 Pascal의 문자 문자열(줄여서 string)이 정확히 어떻게 생겼는지, 그리고 유효한 문자열과 그렇지 않은 문자열의 차이를 살펴볼게요.
출처: 문서
본문
Pascal에서 문자 문자열(줄여서 그냥 string)은 하나 이상의 문자(1바이트 단위)로 이루어진 연속된 값이에요. 작은따옴표로 감싸야 하고, 소스 코드의 한 줄 안에 있어야 해요. 다시 말해 문자열 안에 말 그대로의 캐리지 리턴이나 라인피드 문자는 들어갈 수 없어요.
따옴표 사이에 아무것도 없는 ''는 빈 문자열이에요.
문자열의 문법을 그림으로 나타내면 다음과 같아요. 문자열은 quoted string(따옴표 문자열)이거나 control string(제어 문자열)이에요.
character string -> quoted string | control string
quoted string -> ' string character '
control string -> # unsigned integer
string character -> ' (따옴표나 CR을 제외한 아무 문자) ' | ' '' '
문자열은 표준 8비트 ASCII 문자나 유니코드(보통 UTF-8 인코딩) 문자로 이루어져요. 제어 문자열(control string) 을 쓰면 키보드로 입력할 수 없는 문자를 지정할 수 있는데요, 예를 들어 #27이 이스케이프 문자를 뜻해요.
작은따옴표 문자 하나를 문자열 안에 넣고 싶으면 그 문자를 두 번 연속으로 입력하면 돼요. 참고로 C처럼 백슬래시를 써서 문자열 안의 문자를 이스케이프하는 방식은 Pascal에서 지원하지 않아요.
다음은 유효한 문자열 상수들이에요:
'This is a pascal string'
''
'a'
'A tabulator character: '#9' is easy to embed'
그런데 다음은 유효하지 않은 문자열이에요. 중간에 실제 줄바꿈이 그대로 들어가 있기 때문이죠:
'the string starts here
and continues here'
이 문자열을 제대로 표현하려면 줄바꿈을 제어 문자열로 명시해 줘야 해요. 예를 들어 캐리지 리턴과 라인피드를 함께 넣을 때는:
'the string starts here'#13#10' and continues here'
처럼 씁니다. 유닉스 계열(맥 OS X 포함)은 라인피드만 쓰므로:
'the string starts here'#10' and continues here'
로, 클래식 Mac 계열 운영체제는 캐리지 리턴만 쓰므로:
'the string starts here'#13' and continues here'
로 표현해요.
문자열에 다른 문자셋을 쓰는 것도 가능한데요, 이때는 소스 파일의 코드페이지를 {$CODEPAGE XXX} 지시자나 컴파일러의 -Fc 명령행 옵션으로 지정해 줘야 해요. 그러면 문자열 안의 문자들이 지정된 코드페이지의 문자로 해석돼요.