Dziękuję za pomoc, ale odnośnie tablic znakowych, to mam do napisania program, który zamienia liczby na postać słowną z zachowanie gramatyki, z tego względu chciałem przerobić program z php, znajdujący się
http://www.algorytm.org/inne/zamiana-liczby-na-slowa-z-polska-gramatyka/zlns-gramatyka-1-php.html
na język C i oto co mi wyszło:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
char zamiana(unsigned long x);
int main(void)
{
unsigned long x;
int result = scanf("%lu", &x);
if (result != 1) exit(0);
else if (x == 0) printf("\nzero\n");
else printf("%s",zamiana(x));
return 0;
}
char zamiana(unsigned long x)
{
const char *jed[] = {"","jeden","dwa","trzy","cztery","piec","szesc","siedem","osiem","dziewiec"};
const char *nas[] = {"","jedenascie","dwanascie","trzynascie","czternascie","pietnascie","szesnascie","siedemnascie","osiemnascie","dziewietnascie"};
const char *dzi[] = {"","dziesiec","dwadziescia","trzydziesci","czterdziesci","piecdziesiat","szescdziesiat","siedemdziesiat","osiemdziesiat","dziewiecdziesiat"};
const char *set[] = {"","sto","dwiescie","trzysta","czterysta","piecset","szescset","siedemset","osiemset","dziewiecset"};
const char *tmm[][4] = {
{"","","",""},
{"","tysiac","tysiace","tysiecy"},
{"","milion","miliony","milionow"},
{"","miliard","miliardy","miliardow"}
};
char wynik[1000];
int s,n,d,j,k,g=0;
while (x>0)
{
s = (x%1000)/100;
n = 0;
d = (x%100)/10;
j = x%10;
if (d == 1 && j>0)
{
n = j;
d = 0;
j = 0;
}
k = 2;
if (j == 1 && s+d+n == 0)
k = 0;
if (j == 2 || j == 3 || j == 4)
k = 1;
if (s+d+n+j > 0)
{
strcat(wynik, set[s]);
strcat(wynik, dzi[d]);
strcat(wynik, nas[n]);
strcat(wynik, jed[j]);
strcat(wynik, tmm[g][k]);
}
g++;
x = x/1000;
}
return *wynik;
}
tyle że na końcu wyskakuję błąd windowsowski i nie wiem co dalej.