Enviado em 01/07/2017 - 20:15h
Boa noite. Tenho um exercício pra resolver onde tenho que buscar quantas vezes uma palavra aparece dentro de uma frase, porém a última palavra só está contando quando tem o ponto final.#include <stdio.h> #include <locale.h> #include <string.h> //Aluno: Geovani Leite int main(){ setlocale(LC_ALL, "Portuguese"); char frase[500], palavra[10]; int i, j=0, cont=0, tamPalavra; printf("\nFrase (com ponto final): "); scanf("%[^\n]s", frase); printf("Palavra: "); scanf(" %[^\n]s", palavra); if(strlen(palavra) <= 10){ tamPalavra = strlen(palavra); for (i = 0;frase[i] != '\0';){ //enquanto for diferente de nulo if (frase[i] == ' '){ //se for espaço i++; } else{ //se não for espaço if (frase[i] == palavra[j]){ //vê se é igual j++; //acrescenta j i++; //acrescenta i } else if (j == tamPalavra){ //senao, se j for igual ao tamanho da palavra j = 0; //j recebe 0, cont++; } else{ i++; j = 0; } } } printf("A palavra [%s] aparece %d vezes na frase.\n",palavra,cont); }else{ printf("\nA palavra deve ter no máximo 10 letras.\n"); } return 0; }
Enviado em 02/07/2017 - 06:04h
Alguns problemas e algumas sugestões:int main(void)
char frase[500], palavra[40]; /* ... */ // 499 é igual a 500 (espaço declarado) menos 1 (byte reservado para o terminador da string). if(scanf(" %499[^\n]", frase)!=1){ fprintf(stderr, "Erro ao ler a frase.\n"); exit(1); } /* ... */ // 39 é igual a 40 (espaço declarado) menos 1 (byte reservado para o terminador da string). if(scanf(" %39[^\n]", palavra)!=1){ fprintf(stderr, "Erro ao ler a palavra.\n"); exit(1); }
Enviado em 03/07/2017 - 10:01h
int main(void)
char frase[500], palavra[40]; /* ... */ // 499 é igual a 500 (espaço declarado) menos 1 (byte reservado para o terminador da string). if(scanf(" %499[^\n]", frase)!=1){ fprintf(stderr, "Erro ao ler a frase.\n"); exit(1); } /* ... */ // 39 é igual a 40 (espaço declarado) menos 1 (byte reservado para o terminador da string). if(scanf(" %39[^\n]", palavra)!=1){ fprintf(stderr, "Erro ao ler a palavra.\n"); exit(1); }
Enviado em 03/07/2017 - 16:54h
Meu intuito é ajudá-lo a aprender. Quando eu aponto problemas no código, minha intenção é de que você ganhe conhecimento ao corrigi-los.Resolver problemas de Internet
Como compartilhar a tela do Ubuntu com uma Smart TV (LG, Samsung, etc.)
Descritores de Arquivos e Swappiness
Como instalar no Linux Jogos da Steam só para Windows
Instalando o Team Viewer no Debian Trixie - problema no Policykit
O Que Fazer Após Instalar Ubuntu 25.04
Problema ao iniciar o Opensuse Tumbleweed (3)
Erro ao atualizar o archlinux [RESOLVIDO] (3)