Cecco BS
03-06-2005, 12:49
Ho scritto questo programmino che prende in input delle stringhe e le stampa quando si è terminato. L'acquisizione delle stringhe termina quando si digita un carattere vuoto.
Eccolo:
#include <stdio.h>
int main()
{
int t, i;
char stringa[100][80];
printf("Digita le stringhe: \n\n");
for(t=0;t<100;t++) {
printf("Stringa %d: ", t);
gets(stringa[t]);
if(!*stringa[t]) break; // ecco la riga incriminata
}
printf("\n");
for(i=0;i<t;i++) printf("%s\n", stringa[i]);
system("pause");
}
il punto è che la prima volta l'avevo scritto senza l'asterisco e non andava, mi stampava valori assurdi e simboli strani... poi ho controllato sul manuale che sto seguendo e lì mette un asterisco, con il quale effettivamente il programma funziona...
...
...so che quell'asterisco indica un puntatore, ma non ho ancora affrontato l'argomento, quindi non so esattamente cosa voglia dire...
..il punto è che non vedo perchè non funziona senza asterisco: !stringa[t] dovrebbe - in caso la stringa fosse 0 - porre il valore a 1, e quindi svolgere i ciclo if... come mai non lo fa?
Eccolo:
#include <stdio.h>
int main()
{
int t, i;
char stringa[100][80];
printf("Digita le stringhe: \n\n");
for(t=0;t<100;t++) {
printf("Stringa %d: ", t);
gets(stringa[t]);
if(!*stringa[t]) break; // ecco la riga incriminata
}
printf("\n");
for(i=0;i<t;i++) printf("%s\n", stringa[i]);
system("pause");
}
il punto è che la prima volta l'avevo scritto senza l'asterisco e non andava, mi stampava valori assurdi e simboli strani... poi ho controllato sul manuale che sto seguendo e lì mette un asterisco, con il quale effettivamente il programma funziona...
...
...so che quell'asterisco indica un puntatore, ma non ho ancora affrontato l'argomento, quindi non so esattamente cosa voglia dire...
..il punto è che non vedo perchè non funziona senza asterisco: !stringa[t] dovrebbe - in caso la stringa fosse 0 - porre il valore a 1, e quindi svolgere i ciclo if... come mai non lo fa?