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;
}