Informática, perguntado por ivosertaop7uf3d, 9 meses atrás

Faça um programa em C que: (1) recebe do teclado uma frase com pelo menos 20 caracteres e uma palavra; (2) verifica se a palavra digitada está na frase digitada. Caso esteja, imprime na tela "a palavra digitada esta na frase" e a quantidade de caracteres da palavra. Caso contrário, imprime na tela a frase e a palavra digitadas. Obs.: o programa deve ser feito exatamente conforme o enunciado. O aluno obterá nota zero na questão se o programa não executar. O programa deve ser salvo como um arquivo .c e não .cpp.

Soluções para a tarefa

Respondido por rayllecn
3

Para um programa em C entender palavras e frases usaremos strings. As strings funcionam como um vetor de caracteres, assim, elas armazenam as letras das palavras / frases e permitem que realizemos algumas operações com elas.

Logo, o primeiro passo será adicionarmos uma biblioteca para strings (a string.h) e definirmos as strings que iremos trabalhar. No caso, uma para palavra e outra para a frase, após isso devemos ler a string. Há muitas maneiras de ler strings em c, dentre elas existe uma função chamada gets que permite uma leitura mais fácil, porém, demos nos atentar ao tamanho da string já que com ela pode facilmente haver o estouro desse tamanho.

Iremos criar um ponteiro do tipo char, que vai apontar o resultado da nossa comparação entre a string  frase e a substring palavra. É importante atribuirmos NULL a esse ponteiro, caso contrário ele poderá apontar para algum lixo.

Para a comparação das strings usaremos a função strstr e para sabermos o tamanho da palavra digitada usaremos a função srtlen.

Após isso, verificaremos através do if se o ponteiro continua vazio, caso continue é porque a palavra não foi encontrada na frase, assim, o else será executado.

Assim, o código resultante será:

#include <stdio.h>

#include <string.h>

int main () {

char frase[100];

char palavra[10];

char *ponteiro = NULL;    

int tam = 0;

printf("Digite a frase\n");

gets(frase);

printf("Digite a palavra\n");

gets(palavra);

tam = strlen(palavra);

ponteiro = strstr ( frase, palavra );        

if ( ponteiro )      

 printf ("Encontrado tem %d caracteres",tam);            

else      

 printf ("A frase digitada foi %s e a palavra digitada foi %s", frase, palavra);

}  

Espero ter ajudado, bons estudos :)


ivosertaop7uf3d: Muito obrigado. ..me ajudou muito
Perguntas interessantes