Dev - C++ - Ayuda Código Cesar

 
Vista:
sin imagen de perfil

Ayuda Código Cesar

Publicado por Nicolas (2 intervenciones) el 13/06/2020 03:45:26
Hola buen día, tengo que descifrar cierta palabra en Código Cesar por ejemplo: Ñlythtklg que descifrado dice Hernandez o Tbulg que descifrado dice Nuñez, y el problema es que la letra ñ no la imprime y no se como poder solucionar ese problema. Espero me puedan dar alguna idea.

De antemano muchas gracias.

Este es el código:

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
55
56
57
58
59
60
61
62
#include<conio.h>
#include<stdio.h>
#include<string.h>
#define NUM_LETRAS 54
#define TAM 200
 
char vector[TAM];
char alfbeto[]="abcdefghijklmnñopqrstuvwxyzABCDEFGHIJKLMNÑOPQRSTUVWXYZ";
int j;
void descifrar();
 
void descifrar(){
 
	for(int i=0;i<strlen(vector);i++){
		j=0;
		while(j<54){
			if(vector[i]==alfbeto[j] && (j<24||(j>=27 &&j<51))){
	    		vector[i]=alfbeto[j-7];
	    		j=54;
			}
			if(vector[i]==alfbeto[j] && (j>=24 && j<27)){
				if(vector[i]=='x'){
        			vector[i]='q';
    			}
    			if(vector[i]=='y'){
        			vector[i]='r';
    			}
    			if(vector[i]=='z'){
        			vector[i]='s';
    			}
    			j=54;
   			}
 
   			if(vector[i]==alfbeto[j] && (j>=51 && j<54)){
			   if(vector[i]=='X'){
			   vector[i]='Q';
    			}
    			if(vector[i]=='Y'){
        		vector[i]='R';
    			}
    			if(vector[i]=='Z'){
        		vector[i]='S';
    			}
    			j=54;
   			}
      		j++;
		}
	}
}
 
int main(){
 
	printf("Ingrese la palabra a descifrar: ");
	gets(vector);
	fflush(stdin);
 
	descifrar();
 
 	printf("\nPalabra descifrada es : %s", vector);
 
 	return 0;
}
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
Imágen de perfil de Rodrigo
Val: 1.755
Plata
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

Ayuda Código Cesar

Publicado por Rodrigo (539 intervenciones) el 13/06/2020 05:37:54
Las mayusculas se transformar en mayusculas y las minusculas en minusculas?
Si es asi, parece que te conviene tener 2 arreglos, uno para cada conjunto. Tambien es posible resolverlo con solo 1 arreglo, si transformas lo que quieres buscar a minuscula.

Propongo:
- 1 solo arreglo alfabeto con solo mas minusculas
- Recorrer el arreglo vector, buscar cada letra en el arreglo minusculas, descubrir el indice que le corresponde a la letra buscada.
- Si no esta, copiar la letra en el conjunto final
- Si esta, restar al indice la cantidad que se corre en la codificacion. Copiar la letra que corresponde a la letra modificada.
- Si la resta da negativo, sumar el tamano del arreglo al indice.
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