Sei sulla pagina 1di 6

Laboratorio di Programmazione 1

Docente: dr. Damiano Macedonio Lezione 17 24/03/2014

Stringhe di Caratteri Inizializzazione

Una stringa una qualsiasi sequenza di caratteri racchiusa tra apici doppi.
a:

una stringa. a: non una stringa, un carattere (tipo char).

Per gestire variabili che contengono una stringa necessario ricorrere agli arra di caratteri.
char

word[] = {H, e, l, l, o} !

"rra di di#ensione $ deter#inata dal co#pilatore.

Se si utilizza un arra di di#ensione pre%ssata non detto che la di#ensione dell&arra coincida con la lunghezza della stringa in esso contenuta.
char

word[10] word[0] = a! word[1] = b! '&arra ha di#ensione () #a la stringa ha lunghezza *.

Stringhe di Caratteri Inizializzazione

Si utilizza il carattere nullo \0 per segnalare la %ne di una stringa.


+vita

di #antenere un contatore che indica la %ne della stringa quando questa #e#orizzata in un arra di di#ensione %ssa.
char word[] = {H, e, l, l, o, \0}!

, possibile inizializzare un arra di caratteri speci%cando diretta#ente una stringa, anzich una lista di singoli caratteri.
char

word[] = {Hello}!

-otare che viene aggiunto auto#atica#ente il carattere nullo in .ondo all&arra . /uindi word ha di#ensione 0. Se si speci%ca diretta#ente la di#ensione dell&arra necessario lasciare lo spazio per il carattere nullo %nale. char word[6] = {Hello}!
,

anche possibile o#ettere le parentesi gra1e:


char word[] = Hello!

Stringhe di Caratteri 2perazioni

Si pu3 accedere ai singoli caratteri che co#pongono una stringa con l&usuale notazione degli arra .
word[] = Hello! word[2] l Word[1] = 3 4 H3llo
char

Per deter#inare se due stringhe di caratteri sono uguali non si pu3 utilizzare l&operatore 55 necessario con.rontare esplicita#ente le due stringhe carattere per carattere.
Usando

un ciclo 6hile che scorre entra#be %nch7 non si raggiunge il carattere nullo in una delle due, oppure il carattere corrente nelle due stringhe diverso.

Stringhe di Caratteri 8or#attazione

'a .unzione pri !" pu3 essere utilizzata con .or#ato speciale #$ per visualizzare un arra di caratteri che termina con il carattere nullo .

pri !"%#$\ , word&

'a .unzione $ca " pu3 essere utilizzata con il .or#ato speciale #$ per leggere una stringa di caratteri %nch7 non incontra: uno spazio vuoto, un carattere di tabulazione, o la fine linea.
char word['1]( $ca "%#$, word&( -otare che in questo caso non c& il carattere ) pri#a del no#e della variabile. Se l&input Hello world* viene letto e assegnato a word solo Hello. "ggiunge auto#atica#ente il carattere nullo al ter#ine della stringa letta.

Stringhe di Caratteri 8or#attazione

Se l&utente digita pi9 caratteri della di#ensione dell&arra senza uno spazio, un carattere di tabulazione o un %ne linea, la .unzione $ca " eccede la capacit: dell&arra . , possibile indicare un nu#ero #assi#o di caratteri letti dalla $ca ", indipendente#e dal nu#ero di caratteri digitati, inserendo tale nu#ero tra i si#boli # e $ nella stringa di .or#ato.
char

word['1]( $ca "%#'0$, word& -otare che l&arra ha di#ensione ;(, #entre il valore #assi#o speci%cato ;) per lasciare spazio al carattere nullo %nale auto#atica#ente aggiunto da $ca ".