>> DAVID J. MALAN: Scriviamo un programma che chiede all'utente una stringa e
quindi procedere per stampare la stringa carattere per carattere uno per riga.
Ora, in passato, avremmo fatto probabilmente con la notazione parentesi quadra,
efficace trattamento di una stringa è un array di caratteri.
>> Ma questa volta, facciamo invece trattare una stringa per quello che realmente è, un
puntatore o un indirizzo.
In particolare, l'indirizzo di un carattere, in realtà l'indirizzo del
primo carattere, in una sequenza di personaggi che collettivamente conosciamo
come una stringa.
>> Diamo prima dichiarare una stringa per ciò che realmente è, char *.
E che chiameremo s.
E poi assegnare il ritorno valore della stringa get.
>> Facciamo prossimo fare qualche controllo degli errori.
Se s è null, torniamo subito così che facciamo non accidentalmente
dereferenziare che puntatore nullo.
>> Quindi, cerchiamo di iterare l' caratteri s come segue.
Per int, mi viene 0.
n è uguale alla lunghezza della stringa di s.
Fate questo fino a quando i è inferiore a n.
E ad ogni iterazione, incrementare i.
>> E che cosa vogliamo fare su ogni iterazione?
Vediamo ora stampare su ogni iterazione un singolo carattere
seguita da una nuova linea.
Ebbene, che cosa fare di carattere vogliamo stampare?
Propongo che andiamo all'indirizzo che è uguale alla somma di s più i.
>> Ora, perché questa espressione?
Ebbene, ricordano quella memorizzata nel s è la indirizzo del primo carattere
nella nostra stringa, s.
Nel frattempo, i è in aumento su ogni iterazione in modo che inizi a 0,
poi va a 1, poi va a 2.
>> Quindi, in altre parole, s più efficacemente i rappresenta l'indirizzo
il carattere i-esimo in s.
Quindi, se andiamo a tale indirizzo a titolo di l'operatore *, andremo alla
i-esimo carattere della stringa.
E questo è il valore che sarà sostituito per il nostro segnaposto,
cento C.
>> Facciamo confermano tanto.
Salviamo, compilare, e eseguire questo programma.
Fai puntatori, puntatori oblique dot.
E adesso darò un stringa come ciao.
Invio.
>> E in effetti, vedo H-E-L-L-O, con ogni char sulla propria linea.