cesar_decodifica.c

来自「Caesar Encoder and Decoder」· C语言 代码 · 共 50 行

C
50
字号
#include <stdlib.h>
#include <stdio.h>//prototipo de la funcion de descifradovoid cesar_descifrado(int llave, const char *textocifrado, char *textoplano);/*******************************************************************
void cesar_descifrado(int llave, const char *textocifrado, char *textoplano)
*******************************************************************/
void cesar_descifrado(int llave, const char *textocifrado, char *textoplano){
    int i;     int tamano = strlen(textocifrado);    
    for(i = 0; i < tamano; i++){
        /* si el caracter no es una letra, no lo cambia*/
        if (!isalpha(textocifrado[i])){
            textoplano[i] = textocifrado[i];    
        }else{
            /* la suma de 27 es para prevenir pbtener resultados negativos*/
            textoplano[i] = (tolower(textocifrado[i]) - 'a' - llave + 27)%27 + 'a';
        }
    }
    textoplano[i] = '\0'; /* Null, fin de linea*/  
}int main(int argc, char *argv[]){
    int llave_1;    char *textocifrado[255];    /* reserva espacio de memoria para el texto cifrado*/
    char *textodescifrado = malloc(strlen(textocifrado)+1);        printf ("Texto a descifrar: ");    scanf("%s",textocifrado);    printf ("Introduce la llave: ");    scanf("%d",&llave_1);	    			
    char *resultado = malloc(strlen(textocifrado)+1);
    
    /* llamada de la funcion de cifrado */
    cesar_descifrado(llave_1, textocifrado,resultado);
    /* imprime los resultados resultados */
    printf("-->texto cifrado:   %s\n-->resultado: %s\n",textocifrado,resultado);
        //libera el espacio reservado por la funcion malloc	
    free(textodescifrado);
   
    
    return 0;
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?