#include <stdio.h>
#include <conio.h>
#include <ctype.h>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#define HataGiris "Hatali Giris"
#define HataUzun "Max. 6 Basamakli Olmalidir"
#define Eksi "Eksi"
#define Sifir "Sifir"
#define Bir "Bir"
#define Iki "Iki"
#define Uc "Uc"
#define Dort "Dort"
#define Bes "Bes"
#define Alti "Alti"
#define Yedi "Yedi"
#define Sekiz "Sekiz"
#define Dokuz "Dokuz"
#define On "On"
#define Yirmi "Yirmi"
#define Otuz "Otuz"
#define Kirk "Kirk"
#define Elli "Elli"
#define Altmis "Altmis"
#define Yetmis "Yetmis"
#define Seksen "Seksen"
#define Doksan "Doksan"
#define Yuz "Yuz"
#define Bin "Bin"
#define Milyon "Milyon"
char * tek_getir(const unsigned char tek){
char tamponokunus[23];
sprintf(tamponokunus,"");
switch(tek){
case '0':return Sifir;
case '1':return Bir;
case '2':return Iki;
case '3':return Uc;
case '4':return Dort;
case '5':return Bes;
case '6':return Alti;
case '7':return Yedi;
case '8':return Sekiz;
case '9':return Dokuz;
}
}
char * cift_getir(const unsigned char cift){
switch(cift){
case '1':return On;
case '2':return Yirmi;
case '3':return Otuz;
case '4':return Kirk;
case '5':return Elli;
case '6':return Altmis;
case '7':return Yetmis;
case '8':return Seksen;
case '9':return Doksan;
}
}
char * yuz_getir(const unsigned char yuz){
char * tamponokunus=(char*)malloc(10);
sprintf(tamponokunus,"");
if(yuz>1){
strcat(tamponokunus,tek_getir(yuz));
strcat(tamponokunus," ");
}
strcat(tamponokunus,Yuz);
return tamponokunus;
}
char * okunus(signed long int sayi){
char * tamponokunus=(char*)malloc(35);
char * tampon=(char*)malloc(35);
char * tampontam=(char*)malloc(6);
char * tamponsayi=(char*)malloc(3);
char * tamponparca[2];
tamponparca[0]=(char*)malloc(3);
tamponparca[1]=(char*)malloc(3);
tamponparca[2]=(char*)malloc(3);
static int i,j,k;
k=0;
sprintf(tamponokunus,"");
if(sayi<0){
sayi=0-sayi;
k=1;
}
sprintf(tampontam,"%d",sayi);
printf("\n%s\n",tampontam);
for(i=2;i>0;i--)
strncpy(tamponparca[i-1],&tampontam[strlen(tampontam)-(i*3)],3);
for(i=1;i>=0;i--){
j=atoi(tamponparca[i]);
sprintf(tamponsayi,"%s%d",
(j<1?"000":(j<10?"00":(j<100?"0":""))),
j);
if(tamponsayi[0]!='0'){
strcat(tamponokunus,yuz_getir(tamponsayi[0]));
strcat(tamponokunus," ");
}
if(tamponsayi[1]!='0'){
strcat(tamponokunus,cift_getir(tamponsayi[1]));
strcat(tamponokunus," ");
}
if(tamponsayi[2]!='0'){
strcat(tamponokunus,tek_getir(tamponsayi[2]));
strcat(tamponokunus," ");
}
if(i==1&&strlen(tamponokunus)>0){
strcat(tamponokunus,Bin);
strcat(tamponokunus," ");
}
}
sprintf(tampon,"%s %s",(k==1?Eksi:""),tamponokunus);
return tampon;
}
int main(int argc, char *argv[]){
static int i,j;
static char * tampon=(char*)malloc(6);
j=0;
printf("Okunacak sayiyi giriniz : ");
gets(tampon);
if(strlen(tampon)>6)
j=2;
for(i=0;i<strlen(tampon);i++)
if(!isdigit(tampon[i])&&tampon[i]!='-')
j=1;
if(j==1)
printf(HataGiris);else
if(j==2)
printf(HataUzun);else{
printf(okunus(atoi(tampon)));
}
getch();
return 1;
}