8-1 : EXTRA : Array di caratteri ( stringhe ) Vers . 4.3 – Febbraio 2022
Breve riassunto delle funzioni del linguaggio C fin qui usate
a ) leggere un singolo carattere : nell ’ ipotesi che sia stata definita la seguente variabile : |
char x ; |
- |
scanf ("% c ", & x ); |
- |
x = getc ( stdin ); |
- |
x = getchar ( ); |
b ) scrivere un singolo carattere : nell ’ ipotesi che sia stata definita la seguente variabile : |
char x ; |
- |
printf ("% c ", x ); |
- |
putc ( x , stdout ); |
- |
putchar ( x ); |
c ) leggere una stringa : nell ’ ipotesi che sia stata definita la seguente variabile : |
char str [ MAXDIM + 1 ]; |
- |
scanf ("% s ", str ); |
// N . B . la lettura si interrompe al primo blank ( spazio ) incontrato |
- |
gets ( str ); |
|
d ) scrivere una stringa : nell ’ ipotesi che sia stata definita la seguente variabile : |
char str [ MAXDIM + 1 ]; |
- |
printf ("% s ", str ); |
// N . B . la scrittura NON si interrompe al primo blank ( spazio ) incontrato |
- |
puts ( str ); |
|
e ) calcolare la lunghezza di una stringa : nell ’ ipotesi che siano state definite la seguenti variabili : |
char str [ MAXDIM + 1 ]; |
int n ; |
- |
n = strlen ( str ); |
N . B . Si può usare direttamente la chiamata strlen ( str ) in una espressione o in un confronto senza dover salvare il valore di ritorno in una apposita variabile intera . Il CARATTERE DI TERMINAZIONE NON VERRA ’ OVVIAMENTE INCLUSO NEL CALCOLO
f ) copiare una stringa in un altra : nell ’ ipotesi che siano state definite le seguenti variabili : char str [ MAXDIM + 1 ], str1 [ MAXDIM + 1 ];
- strcpy ( str1 , str ); // Copia il valore della stringa origine str nella stringa di destinazione str1
N . B . Affinchè la funzione esegua in maniera corretta ciò che si prefigge , appare del tutto evidente che la lunghezza della stringa di destinazione str1 debba essere maggiore o uguale alla lunghezza della stringa origine str
g ) effettuare un confronto tra due stringhe : nell ’ ipotesi che siano state definite le seguenti variabili :
char str [ MAXDIM + 1 ], str1 [ MAXDIM + 1 ]; int cfr ;
- cfr = strcmp ( str , str1 );
N . B . Confronta carattere per carattere la stringa str con la stringa str1 seguendo la codifica ASCII restituendo : - il valore 0 se le stringhe str ed str1 coincidono ( carattere per carattere ) - un valore < 0 se la stringa str ha un carattere con codifica ASCII minore di quello in posizione omologa contenuto nella stringa str1 - un valore > 0 se la stringa str ha un carattere con codifica ASCII maggiore di quello in posizione omologa contenuto nella stringa str1 N . B . Si può usare , come abbiamo già visto , direttamente la chiamata strcmp ( str , str1 ) in un confronto senza dover salvare il valore di ritorno in una apposita variabile intera .
Autore : Rio Chierego ( email : riochierego @ libero . it - sito web : www . riochierego . it ) Pag . 6