Dev - C++ - Algortimo capas de Decifrar un codigo en lenguaje C

 
Vista:

Algortimo capas de Decifrar un codigo en lenguaje C

Publicado por Cristian Salazar (1 intervención) el 15/01/2019 00:06:53
buenas tarde porfavor me podrian ayudar en realizar este algoritma la verdad no tengo idea de coo seria de hacerlo
Realizar un programa en C con un algoritmo capaz de descifrar el siguiente texto:
JXYF YFWJF JX ZS FUTWYJ UFWF QF YJWHJWF ZSNIFI
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 421
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Algortimo capas de Decifrar un codigo en lenguaje C

Publicado por Thanatos (190 intervenciones) el 15/01/2019 20:15:44
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#include <ctype.h>   // toupper()
#include <stdio.h>   // printf(), fgets()
#include <string.h>  // strcspn(), strlen()
 
enum {
    CLAVE     =   5,
    CODS_SIZE =  26,
    ESPACIO   =  32,
    CODS_INI  =  65,
    BUFF_SIZE = 128
};
 
int main(void) {
    char msjCifrado[BUFF_SIZE]   = { 0 };
    int codigosBase[CODS_SIZE]   = { 0 };
    int codigosNuevos[CODS_SIZE] = { 0 };
    size_t msjSize;
 
    printf("Ingrese el mensaje cifrado: ");
    (void) fgets(msjCifrado, BUFF_SIZE, stdin);
    msjCifrado[strcspn(msjCifrado, "\r\n")] = '\0';
 
    for (int i = 0; i < CODS_SIZE; ++i) {
        codigosBase[i] = CODS_INI + i;
        codigosNuevos[i] = codigosBase[i];
    }
 
    for (int cont = 0; cont < CLAVE; ++cont) {
        const int temp = codigosNuevos[CODS_SIZE - 1];
 
        for(int i = CODS_SIZE - 1; i > 0; --i) {
            codigosNuevos[i] = codigosNuevos[i - 1];
        }
        codigosNuevos[0] = temp;
    }
 
    printf("El texto plano es --------> ");
 
    msjSize = strlen(msjCifrado);
    for (size_t i = 0; i < msjSize; ++i) {
        if (msjCifrado[i] == ESPACIO) {
            printf("%c", ESPACIO);
        }
 
        for (size_t j = 0; j < CODS_SIZE; ++j) {
            if (toupper(msjCifrado[i]) == codigosBase[j]) {
                printf("%c", codigosNuevos[j]);
            }
        }
    }
    printf("\n");
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar