Cifrador de líneas de texto

  • Nombre del archivo: Cifrador de líneas de texto
  • Tamaño: 1.84 KB
yes /

Descargar

El código lee un valor numérico entero n, comprendido entre 1 y 9, para cifrar una línea de texto que acaba con un punto. Si un carácter es una letra o un dígito, se reemplaza por el carácter que se encuentra n posiciones más adelante dentro del conjunto de caracteres (mayúsculas, minúsculas, dígitos), suponemos que detrás de la Z está la A, de la z la a y del 9 el 0. Cualquier carácter que no sea letra o dígito se reemplazará por un guion ‘-’


Además el programa eliminará todas las repeticiones consecutivas de un mismo carácter. El programa también comprueba que el valor introducido para n está dentro del intervalo pedido, de no ser así solicitará otro número hasta que el valor introducido sea correcto.


Ejemplo:
Si el texto que se introduce es: El robot R2D2 es el mas chuuuuloooo de la pelicula.
Y n=1
Se imprimirá: Fm-spcpu-S3E3-ft-fm-nbt-divmp-ef-mb-qfmjdvmb


 

#include <stdio.h>

void main (){

    char car, ant;
    int num, i;

    printf("Introduce un numero entre 1 y 9: ");
    scanf("%d", &num);

    while (num > 9 || num < 1)//Se controla que la entrada de datos es correcta
    {
        printf("Valor incorrecto.\n");
        printf("\nIntroduce un numero entre 1 y 9: ");
        scanf("%d", &num);
    }

    fflush(stdin);   //vacia el buffer, necesario puesto que despues se lee un caracter
    printf ("\nEscribe un texto que acabe con punto: ");
    scanf ("%c", &car);
    ant = car+1;

    while (car != '.')//Si hay un punto, se detiene
    {
        if (car != ant)
        {
            if (car>='a'&& car<='z')
            {
                if((car+num)>'z')
                    printf("%c", car+num +'a'-'z'-1);//Cuando la suma salga de 'z' se le resta para "dar la vuelta"
                else printf("%c",car+num);
            }
            else if (car>='A'&&car<='Z')
            {
                if((car+num)>'Z')
                    printf("%c", car+num +'A'-'Z'-1);
                else printf("%c",car+num);
            }
            else if (car>='0'&& car<='9')
            {
                if((car+num)>'9')
                    printf("%c", car+num +'0'-'9'-1);
                else printf("%c",car+num);
            }
            else printf("-");
            }
            ant = car;
            scanf("%c", &car);
    }
}

No hay puntuaciones ¡sé el primero añadir una!

Añadir un comentario

Estás utilizando un programa tipo AdBlock que bloquea el servicio de "captchas" publicitarios empleado en esta web. Para poder enviar tu mensaje, desactiva AdBlock.