Ir para conteúdo
Fórum Script Brasil
  • 0

Detectar uma string dentro de outra - C


Tapioca

Pergunta

Bom, é o seguinte, a intenção de um programa que eu estou fazendo, como exercício, é expandir abreviaturas, ou seja, se digita a abreviatura no programa, sua expansão e depois uma frase que contenha a abreviatura e o programa funciona de tal forma que imprima na tela substituindo a abreviatura e expansão, e tipo, eu queria saber como se detecta a string da abreviatura dentro da string da frase, por que eu não consegui fazer essa parte

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0
Bom, é o seguinte, a intenção de um programa que eu estou fazendo, como exercício, é expandir abreviaturas, ou seja, se digita a abreviatura no programa, sua expansão e depois uma frase que contenha a abreviatura e o programa funciona de tal forma que imprima na tela substituindo a abreviatura e expansão, e tipo, eu queria saber como se detecta a string da abreviatura dentro da string da frase, por que eu não consegui fazer essa parte

cara pelo que entendi, da pra você usar a funçao strstr da biblioteca string.h ela vai retornar uma sub-string... com paciencia da pra implementar so a abreviatura...

valeewww, qualque coisa posta o cod aew q tentemo resolve

Link para o comentário
Compartilhar em outros sites

  • 0

aí vai meu código:

//Objetivo: Dado uma abreviação e sua expansão, colocando-se uma frase com a abreviação, a frase aparecerá com a

// abreviação expandida.

#include <stdio.h>

#include <string.h>

main ()

{

char frase[1000], abv[6], exp[45], inicio [500], fim[500];

int i, j, k = 0, tamanho_abv, tamanho_inicio, tamanho_exp, tamanho_frase;

printf ("Digite a abreviatura : "); gets(abv);

printf ("Digite a Expansao dela : "); gets(exp);

printf ("Digite a frase desejada: "); gets (frase);

tamanho_abv = strlen(abv);

tamanho_frase = strlen(frase);

tamanho_exp = strlen(exp);

for (i = 0; i<=59; i++)

{

if (frase == abv [1] && frase [i-1] == abv[0])

break;

/*O laço detecta onde está a abreviação pela 1ª e 2ª letra dele, determinando o "i", e a partir dele, o programa

começa a trabalhar colocando a parte da frase antes da abreviação na string "inicio" e o que vem depois dela

na string "fim" e depois, coloca-se o printf mostrando inicio, a expansão e fim*/

}

for (j=0; j <= i-2; j++) //laço para determinar a string "inicio".

{

inicio [j] = frase[j];

}

inicio [j] = '';

tamanho_abv = strlen(abv);

tamanho_inicio = strlen(inicio);

for (j= tamanho_abv + tamanho_inicio; j<=59; j++) //laço para determinar a string "fim";

{fim [k] = frase [j];

k++;

}

fim [k] = '\n';

printf ("%s%s%s\n",inicio,exp,fim);

system ("pause");

}

Dá pra ver que eu enrolei a parte de detectar quando a abreviação tá dentro da frase que é só vendo a primeira e segunda letra e sair do laço, ou seja, se uma palavra tiver os mesmos dois caracteres da abreviação, ele vai colocar a expansão, fora que só é para a primeira vez que ela aparece na frase

Bom, alguém podia me dizer como funciona a função "strstr"? e tipo, como eu poderia implementa-la no programa por favor?

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...