Wątek przeniesiony 2018-11-10 13:35 z C/C++ przez furious programming.

Szyfr cezara - tylko znaki alfanumeryczne

2018-11-10 11:46
0

Witam. Mam zrobic program, ktory szyfruje za pomoca szyfru cezara. Uzytkownik podaje dlugosc lancucha i wprowadza do niego znaki.
Pytanie: Jak zrobic, zeby uzytkownik mogl wpisac tylko znaki alfanumeryczne?

#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>

int main() {
    size_t rozm;
    int i;
    char *tab;
    printf("Podaj dlugosc lancucha: \n");
    scanf("%d", &rozm);
    tab = malloc(rozm * sizeof(char));
    printf("Wprowadz ciag znakow: \n");
    for (i = 0; i <= rozm; i++) {
        scanf("%c", &tab[i]);
    }

    //KODOWANIE
    for (int i = 0; i <= rozm; i++)
    {
        if(tab[i] >= '0' && tab[i] <= '9')
        {
            if(tab[i] + 3 <='9')
                tab[i] +=3;
            else
                tab[i] = tab[i] - 7;
        }
        else if(tab[i] >= 'a' && tab[i] <= 'z')
        {
            if (tab[i] + 3 <= 'z')
                tab[i] += 3;
            else
                tab[i] = tab[i] - 23;
        }
        else if(tab[i] >= 'A' && tab[i] <= 'Z')
        {
            if (tab[i] + 3 <= 'Z')
                tab[i] += 3;
            else
                tab[i] = tab[i] - 23;
        }
    }

    printf("\nZakodowany ciag:");
    for(i=0; i<=rozm; i++)
    {
        printf("%c", tab[i]);
    }
    free(tab);
    return 0;
}
edytowany 2x, ostatnio: Radek92429, 2018-11-10 12:06

Pozostało 580 znaków

2018-11-10 12:38
0

W bibliotece ctypes.h jest funkcja isalpha, a dokładniej int isalpha(int c) i ona wykonuje robotę.
http://www.cplusplus.com/reference/cctype/isalpha/

Ja bym zrobil Blok, albo funkcje po scanf.


edytowany 1x, ostatnio: furious programming, 2018-11-10 14:38
probowalem jej uzyc, ale ta funkcja nie chce wspolpracowac. mozesz mi powiedziec, w ktorym miejscu mam sprawdzic poprawnosc tych znakow? - Radek92429 2018-11-10 13:10
@Radek92429: na temat odpowiadaj w postach. - furious programming 2018-11-10 14:35

Pozostało 580 znaków

Liczba odpowiedzi na stronę

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0