Siedze i mecze sie z tym programem zamiana liczb na slowa i nie wiem jak to rozgryzc aby dzialalo w C
Co jest nie tak z strcat ?
#include <stdio.h>
#include <conio.h>
static char *jednosci[10] = {"", " jeden", " dwa", " trzy", " cztery", " piec", " szesc", " siedem", " osiem", " dziewiec"};
static char *nascie[10] = {"dziesiec", " jedenascie", " dwanascie", " trzynascie", " czternascie", " pietnascie", " szesnascie", " siedemnascie", " osiemnascie", " dziewietnascie"};
static char *dziesiatki[10] ={"", " dziesiec", " dwadziescia", " trzydziesci", " czterdziesci", " piecdziesiat", " szescdziesiat", " siedemdziesiat", " osiemdziesiat", " dziewiecdziesiat"};
static char *setki[10] = {"", " sto", " dwiescie", " trzysta", " czterysta", " piecset", " szescset", " siedemset", " osiemset", " dziewiecset"};
static char *x[6] = {"", " tys.", " mln.", " mld.", " bln.", " bld."};
void main()
{
char *slownie = " ";
long int liczba;
int koncowka;
int rzad = 0;
int j = 0;
int minus = 0;
printf("Podaj liczbe do zamiany na slowa\n");
scanf("%d",&liczba);
if (liczba<0)
{
minus=1;
liczba=-liczba;
}
if (liczba==0) slownie="zero";
while (liczba>0)
{
koncowka=(liczba%10);
liczba/=10;
static char zzz[256];
//strcat(zzz, ones[s[i] - '0' - 1]);
if ((j==0)&&(liczba%100!=0 || koncowka!=0)) strcat(slownie, x[rzad]);
if ((j==0)&&(liczba%10!=1)) strcat(slownie, jednosci[koncowka]);
if ((j==0)&&(liczba%10==1))
{
strcat(slownie, nascie[koncowka]);
liczba/=10;
j+=2;
continue;
}
if (j==1) strcat(slownie, dziesiatki[koncowka]);
if (j==2)
{
strcat(slownie, setki[koncowka]);
j=-1;
rzad++;
}
j++;
}
printf("\nOdpowiedz:\n");
printf(slownie);
getch();
}