In che modo si può mettere alla prova questo programma per il conteggio di righe, parole e caratteri in un testo? Quale tipo di dati in ingresso ha più probabilità di individuare eventuali bachi?
#include <stdio.h>
#define IN 1
#define OUT 0
//Conta il numero di righe, parole e caratteri in un testo
main()
{
int c, nl, nw, nc, state;
state = OUT; //stato=esterno alla parola
nl = nw = nc = 0;
while ((c = getchar()) != EOF) {
++nc;//conta il carattere
if (c == '\n')//se c è 1 carattere new line
++nl;//conta nuova riga
if (c == ' ' || c == '\n' || c == '\t')//se (c=spazio o c=newline o c=tabulazione)
state = OUT;//allora stato=esterno alla parola
else if (state == OUT) {//altrimenti se (stato=esterno alla parola)
state = IN;//allora stato=interno alla parola
++nw;//conta nuova parola
}printf("Righe:%d Parole:%d Caratteri:%d\n", nl, nw, nc);
}
}