Jump to content
Fórum Script Brasil
  • 0

Detectar uma string dentro de outra - C


Tapioca

Question

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 to comment
Share on other sites

2 answers to this question

Recommended Posts

  • 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 to comment
Share on other 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 to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



  • Forum Statistics

    • Total Topics
      152.2k
    • Total Posts
      652k
×
×
  • Create New...