• 0
Sign in to follow this  
Henrique Menna

Mudar letras

Question

estou com uma duvida, to fazendo um algorítimo que pegue a frase do usuário que não tenha sentido, como se fosse um código, para resolver tem um chave que é as letras que mais sai do alfabeto português, para resolver eu tenho que associar cada letra do texto com a letra que mais usada no português, EX c =a, z=o e assim por diante, eu fiz o código só que ele não muda fica sempre a mesma letra que o usuário digitou. alguém poderia me dar umas dicas.

#include <stdio.h>
#include <string.h>

main()
{
  char chave[20],texto[20],frase[20];
  
  int size,i;
  printf("Digite o texto para ser alterado: ");
  scanf("%s",chave);
  size=strlen(chave);
  strcpy(texto,chave);  
  for(i=0;i<size;i++)
    {
     if (frase[i]=='c')
       frase[i]='a';
     else if (texto[i]=='b')
       frase[i]='s';
     else if (texto[i]=='d')
       frase[i]='e';
     else if (texto[i]=='e')
       frase[i]='d';
   } 
  printf("Texto original:\n%s\n Novo texto:\n%s\n",chave,texto);  
}

 

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

  • 0
Guest

Olá. Apesar de não ter entendido muito bem o exercício, posso dizer q um ponto q deveria ser mudado é q em nenhum momento você copia para a string frase o conteúdo da string chave e dentro do FOR você procura por um índice que não vai estar na string frase, pois a mesma está vazia

tenta isso:

#include <stdio.h>
#include <string.h>

int main()
{
    char chave[20],texto[20];

    int size,i;
    printf("Digite o texto para ser alterado: ");
    scanf("%s",chave);

    size = strlen(chave);
    strcpy(texto, chave);

    for(i = 0; i < size; i++)
    {
        if (texto[i] == 'c')
            texto[i] = 'a';
        else if (texto[i] = 'b')
            texto[i] = 's';
        else if (texto[i] == 'd')
            texto[i] = 'e';
        else if (texto[i] == 'e')
            texto[i], 'd';
    }

    printf("Texto original:\n%s\nNovo texto:\n%s\n", chave, texto);
}

 

Share this post


Link to post
Share on other sites
  • 0
Guest

Olá. Estive pensando a respeito do código q postei acima e devo reconhecer q essa não é a melhor forma para resolver o problema baseado nos resultados obtidos com a execução do código.

Negócio é pensar em uma outra forma para resolver essa questão

E uma das formas q me vei agora d tentar resolver o exercício é essa:

 

#include <stdio.h>
#include <string.h>

int main()
{
    char chave[20],texto[20];

    int size,i;
    printf("Digite o texto para ser alterado: ");
    scanf("%s",chave);

    size = strlen(chave);
    strcpy(texto, chave);

    for(i = 0; i < size; i++)
    {
        switch (texto[i])
        {
        case 'c':
            texto[i] = 'a';
            break;
        case 'b':
            texto[i] = 's';
            break;
        case 'd':
            texto[i] = 'e';
            break;
        case 'e':
            texto[i] = 'd';
            break;
        }
    }

    printf("Texto original:\n%s\nNovo texto:\n%s\n", chave, texto);
}

Dá uma testada para ver se é isso mesmo q você quer e aí avisa, ok?

exemplo de saída:

Digite o texto para ser alterado: cbde
Texto original:
cbde
Novo texto:
ased 

Share this post


Link to post
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.

Sign in to follow this