Ir ao conteúdo
  • Cadastre-se

C Embaralhar uma string de números em C


Eradlik
Ir à solução Resolvido por Leonardo0308,

Posts recomendados

  • Solução

Para começar você poderia fazer um loop, para mover os números.

 

Quanto a chave, se ela fosse 12345678.

 

Você poderia troca a sua string em pares, com o exemplo de cima, você trocaria a posição 1 pela 2, a 3 pela 4, 5 pela 6 e a 7 pela 8.

 

Se a sua string fosse ABCDEFGH ela ficaria BADCFEHG depois de passar pelo loop. (Usei letras para ficar melhor de visualizar).

 

Conforme você modificar a chave, você muda qual casa será trocada com qual.

 

Depois de você desenvolver isso, podemos deixar mais complexo.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

A maneira mais simples para "embaralhar" (criptografar) é deslocar os elementos uma certa quantidade de casas. Essa quantidade é a chave:

void encriptar(char* vetor, char* cripto, int chave)
{
    int tam = strlen(vetor);
    for (int i = 0; i< tam; i++) cripto[(i+chave) % tam] = vetor[i];
    printf("%s\n", cripto);
}

a função acima deslocar os elementos em "chave" casas.

Para descriptografar, chame novamente a mesma função, mudando a chave:


    //***Criptografar
    encriptar(vetor, cripto, chave);
    //***Descriptografar
    encriptar(cripto, descripto, tam - chave);
    

"chave" deve ser menor ou igual ao tamanho do veto original. 

"cripto" é um vetor que armazena o resultado criptografado, que deve ter tamanho igual a "vetor";

"descripto" é um vetor que armazena o resultado descriptografado, que também deve ter tamanho igual a "vetor";

  • Curtir 2
Link para o comentário
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...