Olá!
Sou iniciante em C, tanto é que este programa precisa ser feito sem uso de ponteiros e nada muito avançado, apenas for, vetores, while.
O programa consiste em o usuário digitar um texto de até 500 caracteres, depois digitar uma palavra de até 24 caracteres, e o programa retornar quantas vezes essa palavra ocorreu no texto.
Segue o que fiz até o momento:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
main()
{
char palavra[25], texto[501];
int quantidade1 = 0, quantidade2 = 0;
int i, j,tamanho_t, tamanho_p;
do{
printf("Digite um texto com no maximo 500 caracteres: ");
gets(texto);
tamanho_t= strlen(texto);
if(tamanho_t>500) printf("\nVoce digitou um texto com mais caracteres que o permitido. Tente novamente.\n\n");
}while(tamanho_t>500);
do{
printf("Digite uma palavra com no maximo 24 letras (apos sera retornada a quantidade de vezes que essa palavra aparece no texto): ");
gets(palavra);
tamanho_p = strlen(palavra);
if(tamanho_p>24) printf("\nVoce digitou uma palavra com mais letras que o permitido. Tente novamente.\n\n");
}while(tamanho_p>24);
for (i=0; i<=tamanho_t; i++)
if(texto == palavra)
{
for(j=0; j<=tamanho_p; j++)
{
if(texto[i+j] == palavra[j])
quantidade1++;
}
if(quantidade1==tamanho_p)
quantidade2++;
}
printf("\nA quantidade de vezes que aparece a palavra %s no texto é: %d\n\n", palavra, quantidade2);
system("pause");
}
.
.
.
O que está em negrito que é meu problema. Tenho que fazer o programa usando esse tipo de código com esse texto[i+j], porém ele não retorna o valor correto. Não sei se é algum for, ou a disposição dos if's, porém já tentei de tudo e nada, na verdade até estou cansado mentalmente de tanto mexer nesse programa, rsrs. Alguém poderia me dar uma luz, dizer exatamente onde está o erro e como posso resolvê-lo?
Abaixo segue o que foi me passado para explicar um pouco desse texto[i+j]:
Obrigado!!!