Dzień dobry.
Czy jest jakaś opcja żeby usunąć z tablicy puste znaki?
A teraz dokładniej. Zadeklarowałem tablicę na maksymalnie 50 elementów. Proszę użytkownika o podanie zdania do rozszyfrowania. Następnie przepisuję to zdanie do nowej tablicy (również o rozmiarze 50) jednak usuwając powtarzające się spacje i puste znaki. A następnie w pętli używam funkcji sizeof(), jednak zwraca ona rozmiar 50, a nie rzeczywisty. W jaki sposób mogę zawęzić rozmiar do obecnego, a nie deklarowanego?
#include <stdio.h>
int main()
{
char tab[50];
char tabb[50];
int i,g;
int size = sizeof(tab);
char *znak = tab;
printf("Podaj tekst: ");
getline(&znak,&size,stdin);
for(i=0;i<sizeof(tab);i++)
{
if((tab[i]==' ' && tab[i-1]==' ') || tab[i]==0)
{}
else
{
tabb[i]=tab[i];
printf("%c",tabb[i]);
}
}
for(g=1;g<=26;g++)
{
for(i=0;i<=10;i++)
{
if(tab[i]!=' ')
{
if(tab[i]+g<'a')
tabb[i]='z'-tab[i]-g+'a'+1;
if(tab[i]+g>='a' && tab[i]+g<='z')
tabb[i]=tab[i]+g;
if(tab[i]+g>'z')
tabb[i]='a'+tab[i]+g-'z'-1;
}
printf("%c",tabb[i]);
}
printf("\n");
}
}