#include <string.h>
#include <stdio.h>
#define CHANGE 13.7603
int checkinput(char *input);
void eur_in_ats(char *pEuroWert);
void ats_in_eur(char *pAtsWert);
void my_chr_replace(char *string,char old,char new);
int main(int argc, char *argv[])
{
char sAts[100], sEuro[100];
char *par1, *par2, *par3;
if (argc != 3)
{
fprintf(stderr,"Fehler: zwei Parameter erforderlich \n");
return 1;
}
par1=argv[1];
par2=argv[2];
par3=argv[3];
if (strcmp(par1,"-to_ats")==0)
{
strcpy(sEuro,par2);
eur_in_ats(sEuro);
}
else if (strcmp(par1,"-to_eur")==0)
{
strcpy(sAts,par2);
ats_in_eur(sAts);
}
else if (strcmp(par2,"-to_ats")==0)
{
strcpy(sEuro,par1);
eur_in_ats(sEuro);
}
else if (strcmp(par2,"-to_eur")==0)
{
strcpy(sAts,par1);
ats_in_eur(sAts);
}
else
{
fprintf(stderr,"Fehler: Paremeter -to_ats oder -to_eur nicht gefunden\n");
return 1;
}
return 0;
}
void eur_in_ats(char *pEuroWert)
{
char sAts[100];
float fAts, fEuro;
if (checkinput(pEuroWert)==1)
return;
printf ("Betrag in EUR: %s\n", pEuroWert);
my_chr_replace(pEuroWert,',','.');
sscanf(pEuroWert,"%f",&fEuro);
fAts=fEuro*CHANGE;
sprintf(sAts,"%f",fAts);
my_chr_replace(sAts,'.',',');
printf ("Betrag in ATS: %s\n", sAts);
}
void ats_in_eur(char *pAtsWert)
{
char sEuro[100];
float fAts, fEuro;
if (checkinput(pAtsWert)==1)
return;
printf ("Betrag in ATS: %s\n", pAtsWert);
my_chr_replace(pAtsWert,',','.');
sscanf(pAtsWert,"%f",&fAts);
fEuro=fAts/CHANGE;
sprintf(sEuro,"%f",fEuro);
my_chr_replace(sEuro,'.',',');
printf ("Betrag in EURO: %s\n", sEuro);
}
int checkinput(char *sEingabe)
{
int i;
int iAnzKomma=0;
// trifft normal bei der Eingabe von zwei Parametern nicht zu
if (strlen(sEingabe) == 0)
{
printf("Bitte geben Sie einen korrekten Zahlenwert ein !\n");
return 1; /* true */
}
if ((strlen(sEingabe) == 1) && (sEingabe[0]==','))
{
printf("Bitte geben Sie nicht nur ein Komma ein !\n");
return 1; /* true */
}
for (i=0;i<=strlen(sEingabe)-1;i++)
{
switch (sEingabe[i])
{
case '0':
case '1':
case '2':
case '3':
case '4':
case '5':
case '6':
case '7':
case '8':
case '9':
continue;
break;
case ',':
iAnzKomma++;
if (iAnzKomma > 1)
{
printf("Bitte geben Sie maximal ein Komma ein !\n");
return 1; /* true */
}
continue;
break;
default:
printf("Bitte geben Sie fuer die Waehrung nur Zahlen und optional ein Komma ein !\n"); // neu
return 1; /* true */
}
}
return 0; /* false */
}
void my_chr_replace(char *string,char old,char new)
{
int i;
for (i=0;i<strlen(string);i++)
{
if (string[i] == old)
string[i] = new;
}
}