Flames Posted March 29, 2012 at 11:04 PM Report #446505 Posted March 29, 2012 at 11:04 PM Boas pessoal. O que pretendo fazer com o codigo seguinte é contar quantas vezes uma palavra aparece dentro de outo conjunto de palavras... #include <stdio.h> #include <string.h> #include <ctype.h> void main() { char text[]= "a casa da casa esta"; char substring[]="casa"; int i=0; char *f; f=text; printf("%d\n",*f); while (*f!=NULL) { if((strstr(f,substring))!=NULL) i++; f++; } printf("%d",i); } Peço ja desculpa a questão de ponteiros e etc... Ainda estou a "aprender" sobre tal... Não percebo o porquê de me estar a dar uns valores "estranhos" :S
bsccara Posted March 29, 2012 at 11:13 PM Report #446510 Posted March 29, 2012 at 11:13 PM Dá-te valores estranhos porque estás a contar a mesma palavra várias vezes, por estares a avançar na string a pesquisar caracter a caracter. O teste deveria ser semelhante a: char * sub_ptr; sub_ptr = strstr(f,substring); if(sub_ptr!=NULL) { f = sub_ptr; i++; } else break; f++; P.S. Lembrei-me que podes sair do ciclo logo que não encontres a palavra...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now