#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;
   }
}