Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*Data una stringa contare di quante parole e' formata,
- * le parole sono separate da uno o piu spazi consecutivi*/
- #include <stdio.h>
- #include <stdlib.h>
- int conta_parole(char *stringa){
- int contatore;
- contatore=0;
- //con questo primo if vado ad esaminare il primo carattere della stringa, se per caso, il primo carattere
- //e una lettera, allora significa che all inizio della stringa ce una parola, e quindi la conto.
- if((stringa[0]>=65 && stringa[0]<=90)||(stringa[0]>=97 && stringa[0]<=122))
- contatore++;
- //ora passo ad esaminare il resto della stringa
- //condizione del while-> finche non arrivi al carattere di terminazione
- while(*stringa){
- //carattere esaminato e' uno spazio
- if(*stringa==' '){
- //ho fatto andare il puntatore in avanti, per vedere cosa ce dopo, se
- //ce uno spazio oppure una nuova parola che comincia
- ++stringa;//faccio scorrere il puntatore in avanti
- //caso: il carattere dopo e' una lettera, quindi ce una parola che comincia,
- //allora la conto
- if((*stringa>=65 && *stringa<=90)||(*stringa>=97 && *stringa<=122))
- contatore++;
- //immaginiamo che dopo lo spazio ci sia un'altro spazio, e dopo di esso una lettera
- //ho trovato il secondo spazio
- if(*stringa==' '){
- //faccio andare ancora in avanti e vedo se quello dopo il secondo spazio e' una lettera, se si conto
- ++stringa;//vado avanti
- if((*stringa>=65 && *stringa<=90)||(*stringa>=97 && *stringa<=122))
- contatore++;//conto
- }
- }
- //il carattere esaminato e' una lettera, ma dopo ce uno spazio, allora siamo in presenza di una parola
- //di una solo lettera
- if((*stringa>=65 && *stringa<=90)||(*stringa>=97 && *stringa<=122)){
- ++stringa;
- if(*stringa==' ')
- contatore++;
- }
- //while, rifai la stessa cosa per il carattere successivo della stringa
- stringa++;
- }
- return contatore;
- }
- //main di prova
- int main(){
- char stringa[]=" ciao come";
- int ris;
- ris=conta_parole(stringa);
- printf("%d", ris);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment