Ir ao conteúdo
  • Cadastre-se

C Trocar palavra em uma frase em C


Posts recomendados

Olá,

Estou treinando linguagem C e me deparei com um exercício de strings que eu não consegui resolver. E na apostila que tenho não há essa informação.

 

Exercício:

Faça um programa que receba uma frase e uma palavra. Caso a frase contenha a palavra ESCOLA, substitua pela palavra digitada.

Exemplo:

  • Frase: Eu moro perto de uma escola. Mas essa escola não é a melhor.
  • Palavra: padaria
  • Resposta: Eu moro perto de uma padaria. Mas essa padaria não é a melhor.
Link para o post
Compartilhar em outros sites

@Dodovoisg A função strstr() retorna um ponteiro para a primeira ocorrência de str2 em str1. O protótipo:

char* strstr(const char* str1, const char* str2);

Um loop com essa função deve fazer o que você precisa. Se o ponteiro retornado for nulo, então str2 não faz parte de str1, e aí seu loop deve terminar.

Para substituir a string escola pela string padaria, talvez a função strncpy() sirva.

  • Curtir 1
Link para o post
Compartilhar em outros sites
4 horas atrás, Dodovoisg disse:

Estou treinando linguagem C e me deparei com um exercício de strings que eu não consegui resolver. E na apostila que tenho não há essa informação

 

 

4 horas atrás, Dodovoisg disse:

Faça um programa que receba uma frase e uma palavra. Caso a frase contenha a palavra ESCOLA, substitua pela palavra digitada


Não há uma "informação" desse tipo. Apenas entenda que uma string é uma sequência de letras terminada por um zero. E você tem duas strings. O enunciado é muito vago e não fica claro se pode usar funções de biblioteca para isso, como strstr() ou strcpy() ou tudo que tem em string.h. Também não dá para saber o que sabe escrever em C, se sabe escrever funções por exemplo...

 

Recomendo muito que consiga um ou dois livros sobre a linguagem. E um site de referência por exemplo, onde pode conseguir pequenos programas de exemplo. E escreva pequenos programas para ir entendendo e vendo o seu próprio progresso. Veja por exemplo sobre strstr() aqui e aqui e verá que tem programas pequenos bem simples de exemplo. 

 

Todo mundo faz isso, imagino.

 

Escreva seu programa em torno dos dados. Sempre. E planeje antes.

 

Exemplo: o seu enunciado e ESTE programa
 

#include "stdio.h"

int main(void)
{
    //const char* frase = "Eu moro perto de uma escola";
    const char* frase = "Eu moro perto de uma esquina";
    //const char* frase = "Eu moro perto de uma esquina e ao lado da escola";

    const char* alvo = "escola";
    const char* palavra = "padaria";

    printf("\
\n\tTrocando '%s' por '%s' em\
\n\t'%s'\n\n",
alvo, palavra, frase);
    return 0;
}

 

Que mostra
 


        Trocando 'escola' por 'padaria' em
        'Eu moro perto de uma escola'

 

Pra que serve essa b0b@g3m?

 

Esse programa por exemplo já estabelece a nomenclatura, usando os nomes do próprio enunciado. E já tem 3 frases importantes lá, em comentário:

  • a própria frase do exemplo,
  • uma parecida que não tem a palavra procurada, e
  • outra que tem a palavra mas tem um falso positivo: "esquina" começa como "escola". E depois um positivo no final.

Se seu programa funcionar com essas 3 tem boa chance de funcionar no geral... E já tem um mecanismo para testar. O próximo caso seria claro com palavras de uma letra só ou strings vazias.

 

De volta ao programa:

 

Não precisa de fato de função nenhuma. Apenas percorrer a entrada letra a letra como faria com um papel e lápis. 

 

  • Obrigado 1
Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!