파스칼-문자열
파스칼의 문자열은 실제로 선택적 크기 사양이있는 일련의 문자입니다. 문자는 숫자, 문자, 공백, 특수 문자 또는 모두의 조합 일 수 있습니다. Extended Pascal은 시스템 및 구현에 따라 다양한 유형의 문자열 객체를 제공합니다. 프로그램에서 사용되는 더 일반적인 유형의 문자열에 대해 설명합니다.
여러 가지 방법으로 문자열을 정의 할 수 있습니다.
Character arrays − 이것은 작은 따옴표로 묶인 0 개 이상의 바이트 크기 문자의 시퀀스 인 문자열입니다.
String variables − Turbo Pascal에 정의 된 String 유형의 변수.
Short strings − 크기가 지정된 문자열 유형의 변수.
Null terminated strings − 변수 pchar 유형.
AnsiStrings − Ansistring은 길이 제한이없는 문자열입니다.
Pascal은 하나의 문자열 연산자, 문자열 연결 연산자 (+) 만 제공합니다.
예
다음 프로그램은 처음 네 종류의 문자열을 인쇄합니다. 다음 예제에서는 AnsiStrings를 사용합니다.
program exString;
var
greetings: string;
name: packed array [1..10] of char;
organisation: string[10];
message: pchar;
begin
greetings := 'Hello ';
message := 'Good Day!';
writeln('Please Enter your Name');
readln(name);
writeln('Please Enter the name of your Organisation');
readln(organisation);
writeln(greetings, name, ' from ', organisation);
writeln(message);
end.
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
Please Enter your Name
John Smith
Please Enter the name of your Organisation
Infotech
Hello John Smith from Infotech
다음 예제는 몇 가지 기능을 더 사용합니다.
program exString;
uses sysutils;
var
str1, str2, str3 : ansistring;
str4: string;
len: integer;
begin
str1 := 'Hello ';
str2 := 'There!';
(* copy str1 into str3 *)
str3 := str1;
writeln('appendstr( str3, str1) : ', str3 );
(* concatenates str1 and str2 *)
appendstr( str1, str2);
writeln( 'appendstr( str1, str2) ' , str1 );
str4 := str1 + str2;
writeln('Now str4 is: ', str4);
(* total lenghth of str4 after concatenation *)
len := byte(str4[0]);
writeln('Length of the final string str4: ', len);
end.
위의 코드가 컴파일되고 실행되면 다음과 같은 결과가 생성됩니다.
appendstr( str3, str1) : Hello
appendstr( str1, str2) : Hello There!
Now str4 is: Hello There! There!
Length of the final string str4: 18
파스칼 문자열 함수 및 절차
Pascal은 문자열을 조작하는 다양한 함수와 절차를 지원합니다. 이러한 하위 프로그램은 구현 방식에 따라 다릅니다. 여기, 우리는 Free Pascal에서 제공하는 다양한 문자열 조작 서브 프로그램을 나열합니다.
Sr. 아니. | 기능 및 목적 |
---|---|
1 | function AnsiCompareStr(const S1: ; const S2:):Integer; 두 문자열을 비교합니다. |
2 | function AnsiCompareText(const S1: ; const S2:):Integer; 대소 문자를 구분하지 않고 두 문자열을 비교합니다. |
삼 | function AnsiExtractQuotedStr(var Src: PChar; Quote: Char):; 문자열에서 따옴표를 제거합니다. |
4 | function AnsiLastChar(const S:):PChar; 문자열의 마지막 문자를 가져옵니다. |
5 | function AnsiLowerCase(const s:): 문자열을 모두 소문자로 변환 |
6 | function AnsiQuotedStr(const S: ; Quote: Char):; 문자열을 인용 |
7 | function AnsiStrComp(S1: PChar;S2: PChar):Integer; 대소 문자를 구분하는 문자열 비교 |
8 | function AnsiStrIComp(S1: PChar; S2: PChar):Integer; 대소 문자를 구분하지 않는 문자열 비교 |
9 | function AnsiStrLComp(S1: PChar; S2: PChar; MaxLen: Cardinal):Integer; 대소 문자를 구분하는 문자열의 L 자 비교 |
10 | function AnsiStrLIComp(S1: PChar; S2: PChar; MaxLen: Cardinal):Integer; 대소 문자를 구분하지 않는 문자열의 L 자 비교 |
11 | function AnsiStrLastChar(Str: PChar):PChar; 문자열의 마지막 문자를 가져옵니다. |
12 | function AnsiStrLower(Str: PChar):PChar; 문자열을 모두 소문자로 변환 |
13 | function AnsiStrUpper(Str: PChar):PChar; 문자열을 모두 대문자로 변환 |
14 | function AnsiUpperCase(const s:):; 문자열을 모두 대문자로 변환 |
15 | procedure AppendStr(var Dest: ; const S:); 2 개의 문자열을 추가합니다. |
16 | procedure AssignStr(var P: PString; const S:); 힙에 문자열 값을 할당합니다. |
17 | function CompareStr(const S1: ; const S2:):Integer; overload; 대소 문자를 구분하는 두 문자열을 비교합니다. |
18 | function CompareText(const S1: ; const S2:):Integer; 대소 문자를 구분하지 않는 두 문자열을 비교합니다. |
19 | procedure DisposeStr(S: PString); overload; 힙에서 문자열을 제거합니다. |
20 | procedure DisposeStr(S: PShortString); overload; 힙에서 문자열을 제거합니다. |
21 | function IsValidIdent( const Ident:):Boolean; 문자열은 유효한 파스칼 식별자입니다. |
22 | function LastDelimiter(const Delimiters: ; const S:):Integer; 문자열의 마지막 문자 |
23 | function LeftStr(const S: ; Count: Integer):; 문자열의 처음 N 개 문자를 가져옵니다. |
24 | function LoadStr(Ident: Integer):; 리소스에서 문자열로드 |
25 | function LowerCase(const s: ):; overload; 문자열을 모두 소문자로 변환 |
26 | function LowerCase(const V: variant ):; overload; 문자열을 모두 소문자로 변환 |
27 | function NewStr(const S:):PString; overload; 힙에 새 문자열을 할당합니다. |
28 | function RightStr(const S: ; Count: Integer):; 문자열의 마지막 N 개 문자를 가져옵니다. |
29 | function StrAlloc(Size: Cardinal):PChar; 문자열에 대한 메모리 할당 |
30 | function StrBufSize(Str: PChar):SizeUInt; 문자열에 대한 메모리를 예약합니다. |
31 | procedure StrDispose(Str: PChar); 힙에서 문자열을 제거합니다. |
32 | function StrPas(Str: PChar):; PChar를 파스칼 문자열로 변환 |
33 | function StrPCopy(Dest: PChar; Source:):PChar; 파스칼 문자열 복사 |
34 | function StrPLCopy(Dest: PChar; Source: ; MaxLen: SizeUInt):PChar; N 바이트의 파스칼 문자열 복사 |
35 | function UpperCase(const s:):; 문자열을 모두 대문자로 변환 |