Es wird keine Unterstützung zur Arbeit mit Zeichenketten geboten.
Extended Pascal
Ermittlung der Länge einer Zeichenkette
laenge := Length(s); { VAR laenge : INTEGER;
s : STRING(kapazitaet); }
Length(s) liefert die Anzahl der belegten Zeichen in s.
Dies ist zu unterscheiden von der Kapazität kapazitaet der
Zeichenkette s. Ermittlung der Lage einer Zeichenkette in einer anderen
position := Index(s1, s2); { VAR position : INTEGER;
s1 : STRING(kapazitaet1);
s2 : STRING(kapazitaet2); }
Es wird die Position ermittelt, ab der die Zeichenkette s2
(erstmalig) in der Zeichenkette s1 vollständig enthalten
ist. Extraktion einer Teilzeichenkette
substring := Substr(s, position, laenge);
{ VAR position, laenge : INTEGER;
s : STRING(kapazitaet1);
substring : STRING(kapazitaet2); }
substring := Substr(s, position);
Die Funktion liefert die Teilzeichenkette von s, die mit dem
position-ten Zeichen beginnt.
Bemerkung:
Substr(s, position, laenge) entspricht
s[position..position+laenge-1].
Entfernen abschließender Leerzeichen aus einer Zeichenkette
s2 := Trim(s1); { VAR s1, s2 : STRING(...); }
Beispiel:
PROGRAM trimmen(OUTPUT);
VAR s1, s2 : STRING(15);
BEGIN
s1 := ' Trimm mich ';
Writeln(s1, ' ', Length(s1));
s2 := Trim(s1);
Writeln(s2, ' ', Length(s2));
END.
Achtung: Führende Leerzeichen werden nicht entfernt. Lexikographischer Vergleich zweier Zeichenketten
vergleich := Eq(s1, s2); { VAR vergleich : BOOLEAN;
s1 : STRING(kapazitaet1);
s2 : STRING(kapazitaet2); }
vergleich := Ne(s1, s2);
vergleich := Ge(s1, s2);
vergleich := Gt(s1, s2);
vergleich := Le(s1, s2);
vergleich := Lt(s1, s2);
Dabei bedeuten
Eq equal gleich Ne not equal ungleich le less or equal kleiner oder gleich lt less then kleiner als ge greather or equal größer oder gleich gt greather then größer alsBeispiel:
PROGRAM str_fct(OUTPUT);
VAR s1, s2, s3, s4 : STRING(10);
l : INTEGER;
BEGIN
s1 := 'Otto';
s2 := 'Ottokar';
s3 := 'Lotto-Otto';
s4 := 'tto';
Writeln('Laenge von ', s1, ' : ', Length(s1));
Writeln('Kapazitaet von ', s1, ' : ', s1.capacity);
Writeln('Position von ', s2, ' in ', s1, ' : ', Index(s1, s2));
Writeln('Position von ', s1, ' in ', s2, ' : ', Index(s2, s1));
Writeln('Position von ', s4, ' in ', s3, ' : ', Index(s3, s4));
Writeln('Substring von ', s2, ' : ', Substr(s2, 4, 3));
Writeln('Substring von ', s2, ' : ', Substr(s2, 4));
Writeln('Substring von ', s2, ' : ', s2[4..6]);
Writeln(s1, ' = ', s2, ' : ', Eq(s1, s2));
Writeln(s1, ' <= ', s2, ' : ', Le(s1, s2));
END.