Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void desencriptar(FILE *entrada, FILE **salida){
- //VARIABLES Y CADENAS A UTILIZAR
- char palabra;
- char AbcedarioMinus[]={'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'};
- char AbcedarioMayus[]={'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 movimientos;
- int j;
- int indiceAux;
- //PEDIMOS LA CANTIDAD DE MOVIMIENTOS QUE REALIZAREMOS
- fscanf(entrada,"%d", &movimientos);
- //SE OCUPA EL GETCHAR PARA ELIMINAR EL SALTO DE LINEA QUE DEJO LOS MOVIMIENTOS
- while(getchar() != '\n');
- //MIENTRAS HAYAN PALABRAS QUE ANALIZAR SEGUIRA
- while((palabra=fgetc(entrada))!=EOF){
- indiceAux=0;
- //SI LOS MOVIMIENTOS SON 0 DIRECTAMENTE ENTREGAMOS LAS PALABRAS A SALIDA
- if(movimientos==0)
- fprintf(*salida,"%c",palabra);
- else{
- //FOR PARA RECORRER LAS CADENAS QUE CONTIENEN EL ABCEDARIO
- for(j=0;j<26;j++){
- //SI PERTENECE AL ALFABETO SEGUIRA
- if(isalpha(palabra)){
- //SI LA LETRA ES MINUSCULA ENTRARA
- if(palabra==AbcedarioMinus[j]){
- //GUARDARA LA POSICION EN CUAL ESTA LA LETRA EN EL ABCEDARIO MAS LOS MOVIMIENTOS QUE SE DEBEN HACER
- indiceAux=j+movimientos;
- //SE REALIZA EL SIGUIENTE PROCEDIMIENTO MIENTRAS EL INDICEAUX SEA MENOR A 0 Y MAYOR O IGUAL A 26
- do{
- if(indiceAux<0){
- indiceAux=26+indiceAux;
- }
- else if(indiceAux>=26){
- indiceAux=indiceAux-26;
- }
- }while((indiceAux<0) || (indiceAux>=26));
- //SE ENTREGA A SALIDA LA LETRA MINUSCULA CORRESPONDIENTE
- fprintf(*salida,"%c",AbcedarioMinus[indiceAux]);
- }
- else{
- //SI LA LETRA ES MAYUSCULA ENTRARA
- if(palabra==AbcedarioMayus[j]){
- //GUARDARA LA POSICION EN CUAL ESTA LA LETRA EN EL ABCEDARIO MAS LOS MOVIMIENTOS QUE SE DEBEN HACER
- indiceAux=j+movimientos;
- //SE REALIZA EL SIGUIENTE PROCEDIMIENTO MIENTRAS EL INDICEAUX SEA MENOR A 0 Y MAYOR O IGUAL A 26
- do{
- if(indiceAux<0){
- indiceAux=26+indiceAux;
- }
- else if(indiceAux>=26){
- indiceAux=indiceAux-26;
- }
- }while((indiceAux<0) || (indiceAux>=26));
- //SE ENTREGA A SALIDA LA LETRA MAYUSCULA CORRESPONDIENTE
- fprintf(*salida,"%c",AbcedarioMayus[indiceAux]);
- }
- }
- }
- else{
- //SI NO PERTENECE AL ALFABETO ENTREGARA EL CARACTER A SALIDA
- fprintf(*salida,"%c",palabra);
- break;
- }
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement