문자열. 개요

문자열은 특정 순서의 문자 목록(또는 시퀀스)입니다. 전체 문자 시퀀스는 단일 항목으로 처리됩니다.

문자는 한 번의 키 입력으로 키보드에서 입력할 수 있는 모든 것입니다(문자, 숫자, 백슬래시 또는 기타 문자).
문자열에는 공백이 있을 수 있습니다: "Hello world!".
빈 문자열은 문자가 0개인 문자열입니다.
Pascal은 아포스트로피(' ')로 쓰여진 모든 것을 문자열로 인식합니다.
파스칼에서 문자열은 문자열 유형입니다.

input 문을 사용하여 문자열에 새 값을 쓸 수 있습니다. <예비> 읽기(들);   와 같이 단순히 문자열 값을 변수에 할당할 수도 있습니다. <예비> s := '파이썬';; 내장 함수 length를 사용하여 문자열의 길이를 결정할 수 있습니다. <예비> n := 길이


문자열 비교

문자열은 숫자처럼 서로 비교할 수 있습니다. 어떤 라인이 더 크고 더 작은지 결정할 수 있습니다.

문자열을 비교할 때 문자 코드가 비교됩니다. 수백은 아니더라도 수십 개의 문자 인코딩이 있습니다. 이 개념을 이해하는 가장 쉬운 방법은 가장 단순한 ASCII 중 하나를 이해하는 것입니다(여기 참조).  
현대 인코딩에서는 러시아어와 영어 문자가 모두 알파벳 순서로 배열되고 숫자도 작은 것에서 큰 것으로 이동한다는 것을 이해해야 합니다. 
예를 들어 아스키 코드표에서 영문자 'A'에 대한 코드는 - 65, 문자 'a' - 97, 숫자 '0' 코드는 48입니다. 러시아어 문자는 ASCII 코드 테이블의 확장 부분(128에서 255까지의 숫자)에 있습니다. 대문자는 소문자보다 앞에 옵니다(즉, 작은 코드를 가집니다).
사용되는 대부분의 인코딩 테이블에서 패턴은 동일하고, 소문자는 대문자보다 늦고, 숫자는 문자보다 빠르며, 러시아어는 영어보다 늦습니다.

예: "기관차"  < "steamboat", 단어의 다섯 번째 글자와 "in"이 다르기 때문입니다. < "x".

불행히도 Pascal에는 한 줄에서 공백으로 구분된 여러 줄을 읽을 수 있는 기능이 없습니다. 이렇게 하려면 다음과 같이 자신만의 함수를 작성해야 합니다. <예비> vars, w: 문자열; i, j, ind: 정수; a: 문자열 배열; 시작하다 readln(s); setlength(a, 길이(들)); 나는 := 1; 산업:= 0; 내가 < 길이 시작하다 while (i < length(s)) and ('' + s[i] = '' ') do i += 1; j := i + 1; w := '' + s[i]; 동안 (j < 길이(들)) 및 ('' +s[j] <> ' ') 시작 w += s[j]; j += 1; 끝; a[ind] := w; 산업 += 1; 나는 := j; 끝; write(a[0], a[1]); 끝.

결과적으로 문자열 배열을 얻습니다.

"+" 기호를 사용하여 문자열을 함께 추가할 수 있습니다. 이 작업을 문자열 연결 또는 연결이라고 합니다. 
예를 들어  <예비> s := '안녕하세요, '; s1 := '세계';; writeln(s + s1); 화면에 "Hello world"라는 문구가 표시됩니다. (인용없이).

행 인덱스 참조
문자열의 각 문자에는 고유 번호( 인덱스라고 함)가 있으며 프로그래밍 언어 Pascal의 인덱싱은 1부터 시작합니다. 즉, 첫 번째 문자에는 인덱스 1이 있고 두 번째 문자에는 인덱스 2가 있는 식입니다.
문자열 문자는 대괄호 s[i]로 표시되는 색인으로 액세스할 수 있습니다.
 
예 
<몸>
추신 PascalABC.NET의 많은 문자열 메서드는 문자열이 0부터 인덱싱된다고 가정합니다. 당분간은 0부터 시작하는 인덱스와 함께 작동하는 문자열 메서드를 사용하지 않을 것입니다. 행이 1부터 인덱싱된다고 가정하는 외부 함수를 사용하여 이를 대체할 수 있습니다. 
 

문자열 S H e l l o
색인 S[1] S[2] S[3] S[4] S[5]
인덱스로 문자에 액세스할 수 있으므로 변수 루프를 사용하여 가능한 인덱스 값을 사용하는 모든 문자를 반복할 수 있습니다. 예를 들어 문자열 s의 모든 문자 코드를 표시하는 프로그램은 다음과 같습니다. <예비> for i := 1 to length(s) do writeln(s[i], ord(s[i])) 프로그램에 대한 설명:
1) length(s) 함수는 문자열의 길이를 찾습니다. 첫 번째 문자의 인덱스는 1이고 마지막 문자의 인덱스는 length(s)입니다. 루프 변수 i는 1에서 길이까지의 값을 취합니다.
2) 각 줄에서 기호 자체가 먼저 표시되고 내장 함수 ord()
에 의해 반환되는 코드가 표시됩니다.
동일한 열거형을 더 짧게 작성할 수 있습니다. <예비> for c in s do      writeln(c, ord(c)); 이 조각에서 루프 헤더는 모든 문자 s를 반복하여 변수 c에 차례로 배치합니다.

문자열로 작업할 때 파스칼의 특징은 문자열이 변경 가능한 개체라는 것입니다. 즉, 문자열의 개별 문자를 변경할 수 있습니다.
예를 들어 다음 문이 작동합니다. <예비> s[5] := 'a';; 필요한 변경 사항이 있는 문자에서 새 문자열을 작성할 수도 있습니다.
예를 들어, 모든 문자 'a'를 교체하는 프로그램은 문자 'b' 다음과 같이 표시됩니다. <예비> 읽기(들);     for i := 1 ~ 길이 시작         if s[i] = 'a'then s[i] := 'b';;     끝; writeln(s); 이 예제에서는 문자열 s의 모든 문자를 반복합니다. 루프 본문에서 변수 s[i]의 값을 확인합니다. 문자가 'a' 문자와 일치하면 'b'로 바꿉니다.