Ver Mensaje Individual
  #1 (permalink)  
Antiguo 09/06/2014, 09:31
manelmanel8
 
Fecha de Ingreso: marzo-2012
Mensajes: 176
Antigüedad: 7 años, 10 meses
Puntos: 2
Cifrado César

Buenas,

estoy programando un cifrado César con la tabla de código ASCII.

Ejemplo:
Si pongo desplazamiento 4 y la palabra taxi, al hacer el cifrado tendría que aparecer xebm, pero el problema es que me imprime xe|m.

Dejo el código

Código:
#include <stdio.h>
#include <string.h>

void codificarText(int, int);

int main(){
	int desplacament = 0;
	char nomfitxer[50], cadena = 0;

	printf("Desplaçament: ");
	scanf("%d", &desplacament);		
	printf("Nom fitxer: ");
	scanf("%s", nomfitxer);	
	printf("Cadena encriptar: ");
	
	codificarText(desplacament, cadena);
		
	
	return 0;
}

void codificarText(desplacament, cadena){	
	
	while ((cadena = getchar()) != '*'){
			if((cadena + desplacament > 'z') || (cadena + desplacament > 'Z')){
				//cadena = cadena + desplacament - 26;
				cadena = (cadena + desplacament % 27);
				printf("%d", cadena);
				putchar(cadena);
			}else if((cadena + desplacament > 'A' && cadena + desplacament < 'Z') || (cadena + desplacament > 'a' && cadena + desplacament < 'z')){
				cadena = cadena + desplacament;
				putchar(cadena);				
			}
			else{
				cadena = cadena;
				putchar(cadena);
			}
	}
}

Última edición por manelmanel8; 09/06/2014 a las 11:03