In Pascal, puoi selezionare parte di una stringa (sottostringa). Per questo, viene utilizzata l'operazione di copia.
La forma generale dell'operazione è la seguente:
s1 := copia(e, indice, conteggio);
Questo comando prende una sezione dalla stringa s, iniziando dal carattere all'indice indice del conteggio della lunghezza.
Per esempio,
s1 := copia(e, 3, 5);
Se index è maggiore della lunghezza della stringa, viene restituita una stringa vuota. Se i caratteri di conteggio, a partire dall'indice, sono più lunghi della lunghezza della stringa, viene restituita la stringa s, a partire dall'indice e alla fine.

Ed ecco quanto è facile invertire una stringa:
s := '0123456789';
s1 := reverseString(s); // s1 = '0123'

Per eliminare parte di una stringa, è necessario utilizzare il metodo delete(s, firstIndex, count): rimuove count caratteri dalla stringa s, a partire da primoIndice
s := '0123456789';
cancella(i, 4, 6); // s1="0129"

Per copiare parte di una stringa, puoi utilizzare il metodo copy(s, index, count): restituirà una parte della stringa s, a partire dall'indice index strong> e lunghezza conteggio
 

s := '123456789';
s1 := copia(e, 3, 4); // s1 = '3456'

Pascal ha molte routine per lavorare con le stringhe.  Molti di questi sono chiamati usando la notazione con punto e sono chiamati metodi. Un elenco completo dei metodi di manipolazione delle stringhe è disponibile online. 
Facciamo conoscenza con alcuni di loro.
s := 'aAbBcC'
sUp := lettere maiuscole; // sUp = "AABBCC" - un metodo che converte ogni carattere di una stringa in maiuscolo
sLow := lettere minuscole // sLow = "aabbcc" - un metodo che converte ogni carattere di una stringa in minuscolo
Il metodo è sempre scritto tra parentesi. Ci sono alcuni parametri all'interno delle parentesi, se sono necessari.

Un altro metodo utile  - val(s, v, ind) - metodo per controllare se tutti i caratteri di una stringa sono cifre. s - stringa sorgente, v contiene un numero se la stringa sorgente era un numero e 0 altrimenti, ind contiene il numero del primo < strong> indice s che non è una cifra, o 0 se s è un numero.
s := 'ab1c'
val(s, v, ind);
writeln(v, ' ', ind); // 0 3
s := '123';
val(s, v, ind);
w(vriteln, ' ', ind); // 123 0
L'utile metodo trim(s) - consente di rimuovere gli spazi all'inizio e alla fine di una stringa
s := ' ab 1c ';
print('s=', trim(s)); // s=ab 1c

Per cercare all'interno di una stringa in Pascal, usa il metodo pos().
Ha restituito l'indice della prima occorrenza della sottostringa nella stringa:
pos(originalString, smallString) - cerca in originalString smallString

Quando la sottostringa non viene trovata, il metodo restituisce 0:

benvenuto := 'Ciao mondo! Addio mondo!';
index := pos(benvenuto, 'lavoro');
writeln(indice); // 7

index := pos(benvenuto, 'sole');
writeln(indice); // 0

Nota: questi metodi non cercano il numero di occorrenze, ma determinano solo se esiste o meno tale sottostringa nella stringa .

In Pascal, per sostituire una sottostringa con un'altra in una stringa, usa il metodo stringReplace()
stringReplace(original, old, new, flag): originalString  la sottostringa old viene sostituita il newflag è uno dei rfReplaceAll rfIgnoreCase, valori scritto tra parentesi quadre. Nel primo caso, tutte le occorrenze di old in originalString, nel secondo, solo il primo.

Esempio di sostituzione di stringhe in Pascal:
 

telefono = '+1-234-567-89-10'

// i trattini vengono cambiati in spazi
edited_phone := stringreplace(phone, '-', ' ', [rfReplaceAll]);
writeln(edited_phone); // +1 234 567 89 10

// i trattini vengono rimossi
edited_phone := stringreplace(phone, '-', '', [rfReplaceAll]);
writeln(edited_phone); // +12345678910

// cambia solo il primo trattino
edited_phone := sostituisci(telefono, '-', '', [rfIgnoreCase]);
writeln(edited_phone); // +1234-567-89-10