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); } } }