Witam, podczas wyświetlania zaszyfrowanego wyrazu pojawia się przed nim niepożądany przeze mnie znak (raz jest to @, raz Ę). Nie wiem, czym jest to spowodowane. Może wy coś dostrzeżecie ;)
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int main() {
size_t rozm;
int i;
char *tab, *tab2;
printf("Podaj dlugosc lancucha: \n");
while(scanf("%d", &rozm) != 1)
{
printf("Wprowadz liczbe!\n");
while
((rozm = getchar()) != '\n' && rozm != EOF);
}
tab = malloc(rozm * sizeof(char));
tab2 = malloc(rozm * sizeof(char));
printf("Wprowadz ciag znakow: \n");
for (i = 0; i <= rozm; i++) {
scanf("%c", &tab[i]);
}
for ( i = 0; i <= rozm; i++)
{
if(tab[i] >= '0' && tab[i] <= '9')
{
if(tab[i] + 3 <= '9')
tab2[i] = tab[i] + 3;
else
tab2[i] = tab[i] - 7;
}
else if(tab[i] >= 'a' && tab[i] <= 'z')
{
if (tab[i] + 3 <= 'z')
tab2[i] = tab[i] + 3;
else
tab2[i] = tab[i] - 23;
}
else if(tab[i] >= 'A' && tab[i] <= 'Z')
{
if (tab[i] + 3 <= 'Z')
tab2[i] = tab[i] + 3;
else
tab2[i] = tab[i] - 23;
}
}
printf("Dlugosc lancucha: %d\n", rozm);
printf("Niezakodowany ciag:");
for(i=0; i<=rozm; i++)
{
printf("%c", tab[i]);
}
printf("\nZakodowany ciag:");
for(i=0; i<=rozm; i++)
{
printf("%c", tab2[i]);
}
free(tab);
free(tab2);
return 0;
}