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