Salve,
siccome dovrei contare il numero di parole che finiscono in are, quando inserisco il testo, la prima parola la seguente funzione me la estrae con la funzione strtok e poi me l'ha confronta con "are" e fin qui ci siamo, quando lo voglio fare con la seconda o con la terza o quarta parola e così via, non riesco ad estrarle token=strtok(testo," "); ho provato anche ad usare il while((token=strtok(testo," "))!='\0')...ma il programma si blocca...ci sarebbe un altra soluzione ?
#include <stdio.h>
#include <string.h>
//conta parole che terminano in are
int conta_parole(char *);
int main()
{
int conta;
char testo[100];
printf("testo:");
gets(testo);
conta=conta_parole(testo);
printf("il numero di parole := %d\n",conta);
system("PAUSE");
}
int conta_parole(char *testo)
{ int j,n,i,verita=0,conta_parole=0;
char *token;
i=0;
while(testo[i]!='\0')
{
token=strtok(testo," ");
n=strlen(token);
if(n>=3){
token[0]=testo[n-3];
token[1]=testo[n-2];
token[2]=testo[n-1];
token[3]='\0'; //fine stringa
if(strncmp(token,"are",3)==0)
verita++;
}
if(verita==3)
conta_parole++;
i++;
}
return conta_parole;
}