Cifrado cesar con C

Iniciado por Zackonit, Mayo 10, 2022, 02:32:56 AM

Tema anterior - Siguiente tema

0 Miembros y 1 Visitante están viendo este tema.

Mayo 10, 2022, 02:32:56 AM Ultima modificación: Mayo 10, 2022, 02:35:35 AM por Zackonit
Código: c



Buenas tardes sean a todos , pues he estado viendo muchos cifrados en internet pero ninguno me convence o de plano para lo que recien se inician en el lenguaje C es complicado de leer ,asi que les traigo el cifrado cesar usando arrays
y punteros ,pueden mejorar el codigo y ponerlo abajo el objetivo de esto es aprender tecnicas

[color=green]Bueno mucho blablabla ,aqui el code [/color]

#include <stdio.h>

void caesarCipher(int key, char *keyword,int size);

int main(int argc,char const *argv[]){
        char msg[4] = "hola";
        char *keyword = &msg;
        caesarCipher(3,keyword,4);
        return 0;
}

void caesarCipher(int key ,char *keyword,int size){
        char abc[26] = {'a','b','c','d','e',
                        'f','g','h','i','j',
                        'k','l','m','n','o',
                        'p','q','r','s','t',
                        'u','v','w','x','y',
                        'z'};
int buffersize = sizeof(abc)/sizeof(abc[0]);
int z=0;

for(int i=0;i<size;i++){
for(int j=0;j<buffersize;j++){
if(keyword[i] == abc[j]){
   z = j+key;
           printf("%c",abc[z]);    
   if(z > buffersize){
   printf("%c",abc[z-buffersize]);

   }
}
}
}
}




puedes no tener que utilizar una liista de letras haciendo un cast a int y despues casteando de nuevo a char.

Algo asi:

Código: php

cifrado[i]=(char)(69+((((int)limpio[i]))-69)+key);

Lo siento, no contesto dudas por MP, si tienes dudas las planteas en el foro.

No tienes permitido ver los links. Registrarse o Entrar a mi cuenta
puedes no tener que utilizar una liista de letras haciendo un cast a int y despues casteando de nuevo a char.

Algo asi:

Código: php

cifrado[i]=(char)(69+((((int)limpio[i]))-69)+key);


Podrias subir el code de tu solucion para poder examinarla con detenimiento?