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

Ajuda em C :> Criptografando e descriptografando


comum05

Pergunta

Boas pessoal ,

Então to com uma dúvida, não consigo desenrolar meu código em C , com o CODEBLOCKS , tenho um exercício a fazer no qual postarei abaixo , e chego até uma parte, como poderão ver aonde vai para digitar a mensagem ele já cai pra linha de baixo direto para a parte de onde devo inserir a palavra chave , e não consigo mais fazer , quem puder ajudar fico agradecido

PROPOSTO:

Você é o programador mais experiente do FBI quando se trata de

criptografar mensagens que são enviadas para a INTERPOL e vice‐versa, e você deverá implementar

um programa que tenha a criptografia mais complexa já pensada pelo maior gênio contemporâneo da

computação, Elder Schemberger.

A criptografia embaralha a frase que deve ser enviada com uma frase‐chave digitada pelo usuário,

criando uma terceira frase, a qual poderá ser enviada entre as agencias de segurança sem qualquer

risco de ser lida pelas milícias interessadas em seu conteúdo.

Para embaralhar a string 1 com a string 2 é necessário preencher os índices pares da string 3 com os

elementos da string 1 e os ímpares com os elementos da string 2 até que os elementos de uma das

duas strings termine. Os demais elementos da string 3 serão preenchidos com os elementos da string

restante (seja da frase ou da chave). Espaços devem ser preenchidos com “!”.

Por exemplo:

Digite a mensagem a ser enviada: Ataque Capanema míssil.

Digite a chave de criptografia: Sábado chopp gelado.

String criptografada: AStaabqaudeo!!Ccahpoapnpe!mgae!lmaídsosil.

Seu programa deve fazer esse processo de criptografia e o processo de decriptografia. Escolha isso

com um menu no início do programa (Claro, não é possível decriptografar se não há algo

criptografado! Trate isso!).

Algoritmo a fazer ...:

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

int main(){

    int tamanho_mensagem=0, tamanho=0,tamanho_pchave=0,i=0,opc;
    char mensagem[100],pchave;

do{
        printf("\n        CODIGO DE CRIPTOGRAFIA    \n");
        printf("+--------------------------------------+\n");
        printf("|  1            Criptografa            |\n");
        printf("|  2            Descriptografa         |\n");
        printf("+--------------------------------------+\n");
        printf("|  0 ENCERRAR A EXECUCAO DO PROGRAMA!!!|\n");
        printf("+--------------------------------------+");
        printf("\n\nESCOLHA UMA DAS OPCOES: ");
        scanf("%d",&opc);
            switch(opc){
                case 1:{
                    printf("Digite a Frase: ");
                    gets(mensagem);
                    tamanho_mensagem = strlen(mensagem);
                    printf("\nDigite a Palavra Chave: ");
                    gets(pchave);
                    tamanho_pchave = strlen(pchave);
                    tamanho = tamanho_mensagem + tamanho_pchave;
                    }
            }
     }while(opc != 0);

return 0;
}

Quem puder dar um help fico agradecido, sou meio novato na linguagem e impaquei ali e não consigo mais fazer.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Olá!

O scanf lê apenas o número, mantendo no buffer o que não é utilizado. No caso ficou a quebra de linha no buffer. Assim, a função gets, ao ser chamada, recebe esta quebra de linha que ficou no buffer e já retorna. Para resolver o problema, mude o seu scanf para:

scanf("%d%*c", &opc);

o %*c informa ao scanf que deve ser lido um char. Devido ao asterisco, esse char será descartado e não armazenado em uma variável.

Abraços,

Marcelo Utikawa da Fonseca

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...