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 new, flag è uno dei rfReplaceAll o 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
|