Le stringhe sono (da ciò che so) in una variabile.
Ad esempio: Gets(buffer). Cioè memorizza quella stringa nella variabile buffer. Usando sscanf(buffer....) posso analizzare quella stringa. Dopodichè posso utilizzare un altro gets(buffer) per ricevere un'altra stringa, sempre però nella variabile buffer, che va a sovrascrivere i dati scritti nel buffer precedente. Si potrebbe utilizzare molte variabili per memorizzare ogni riga in variabili diverse, ma se non so a priori quante righe abbia intenzione di scrivere l'utente, ciò non è possibile.
Esempio stupidissimo:
Input:
Giovanni
Carlo
Elisa
Carmelo
^Z [allora il programma legge Control Z e comincia l'ouput]
Ouput:
Operazione su Giovanni
Operazione su Carlo
....
Io non so quante righe voglia scrivere l'utente, perciò non so quante variabili devo utilizzare per memorizzare le stringhe in memoria, e di conseguenza elaborare i dati.