Ir ao conteúdo

C Embaralhar uma string de números em C


Ir à solução Resolvido por Leonardo0308,

Posts recomendados

Postado
char vetor[]="534567823412332";

Quero embaralhar uma string de números em C.

 

O problema é que eu preciso de uma chave para reverter o processo! Da mesma maneira que eu embaralho, tenho que conseguir desembaralhar.

Basicamente uma criptografia... 

  • Amei 1
  • Solução
Postado

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
Postado

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

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...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!