AleksandarArkan

I - data una stringa conta le parole

Mar 30th, 2015
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.07 KB | None | 0 0
  1. /*Data una stringa contare di quante parole e' formata,
  2.  * le parole sono separate da uno o piu spazi consecutivi*/
  3.  
  4. #include <stdio.h>
  5. #include <stdlib.h>
  6.  
  7. int conta_parole(char *stringa){
  8.     int contatore;
  9.     contatore=0;
  10.    
  11.     //con questo primo if vado ad esaminare il primo carattere della stringa, se per caso, il primo carattere
  12.     //e una lettera, allora significa che all inizio della stringa ce una parola, e quindi la conto.
  13.    
  14.     if((stringa[0]>=65 && stringa[0]<=90)||(stringa[0]>=97 && stringa[0]<=122))
  15.         contatore++;
  16.     //ora passo ad esaminare il resto della stringa
  17.     //condizione del while-> finche non arrivi al carattere di terminazione
  18.     while(*stringa){
  19.        
  20.             //carattere esaminato e' uno spazio
  21.             if(*stringa==' '){
  22.                 //ho fatto andare il puntatore in avanti, per vedere cosa ce dopo, se
  23.                 //ce uno spazio oppure una nuova parola che comincia
  24.                 ++stringa;//faccio scorrere il puntatore in avanti
  25.                
  26.                 //caso: il carattere dopo e' una lettera, quindi ce una parola che comincia,
  27.                 //allora la conto
  28.                 if((*stringa>=65 && *stringa<=90)||(*stringa>=97 && *stringa<=122))
  29.                     contatore++;
  30.                
  31.                 //immaginiamo che dopo lo spazio ci sia un'altro spazio, e dopo di esso una lettera
  32.                 //ho trovato il secondo spazio
  33.                 if(*stringa==' '){
  34.                         //faccio andare ancora in avanti e vedo se quello dopo il secondo spazio e' una lettera, se si conto
  35.                         ++stringa;//vado avanti
  36.                             if((*stringa>=65 && *stringa<=90)||(*stringa>=97 && *stringa<=122))
  37.                                 contatore++;//conto
  38.                 }
  39.             }
  40.             //il carattere esaminato e' una lettera, ma dopo ce uno spazio, allora siamo in presenza di una parola
  41.             //di una solo lettera
  42.             if((*stringa>=65 && *stringa<=90)||(*stringa>=97 && *stringa<=122)){
  43.                 ++stringa;
  44.                 if(*stringa==' ')
  45.                     contatore++;
  46.                
  47.             }
  48.             //while, rifai la stessa cosa per il carattere successivo della stringa
  49.             stringa++;
  50.     }
  51.    
  52.     return contatore;          
  53.            
  54.    
  55. }
  56. //main di prova
  57.  
  58. int main(){
  59.         char stringa[]="    ciao come";
  60.         int ris;
  61.         ris=conta_parole(stringa);
  62.         printf("%d", ris);
  63.        
  64.         return 0;
  65.        
  66. }
Advertisement
Add Comment
Please, Sign In to add comment