Il vettore c contiene una stringa di n caratteri, alcuni dei quali sono spazi.
La seguente funzione deve calcolare e restituire il numero di parole contenute nella stringa (una parola è una sequenza di caratteri consecutivi diversi da spazio che non si possa estendere né a sinistra né a destra mantenendo questa proprietà).
Si assuma che il primo carattere del vettore non sia spazio.
Type stringa = Array[1..100] Of Char; Function contaParole(c: stringa; n: Integer): Integer; Var i, j: Integer; Begin j:=0; For i:=1 To n-1 Do If((c[i] <> ' ') And (c[i+1] = ' ')) Then j:=j+1; contaParole:=j End;
Purtroppo il programma contiene un errore che provoca una risposta sbagliata in uno dei seguenti casi:
- Il programma non funziona se l’input contiene solo spazi.
- Il programma non funziona se la stringa è vuota (cioè, se non contiene caratteri).
- Il programma non funziona se la stringa non termina con uno spazio.
- Il programma non funziona se la stringa termina con uno spazio.