#include <string.h>
#include <stdio.h>
#define CHANGE 13.7603
void atseur(void);
int checkinput(char *input);
void eur_in_ats(void);
int checkchoice(char *sChoice);
char sChoice[100];
char sAts[100], sEuro[100];
float fAts, fEuro;
int main(void)
{
atseur();
}
void atseur(void)
{
do
{
do
{
printf("EURO-ATS (1) ATS-EURO (2) Beenden (3): ");
scanf("%s",sChoice);
} while(checkchoice(sChoice));
if (sChoice[0]=='1')
{
eur_in_ats();
}
else if (sChoice[0]=='2')
{
// Funktion ats_in_eur() aufrufen
}
} while (sChoice[0]!='3');
}
void eur_in_ats(void)
{
memset(sAts,0x00,100);
memset(sEuro,0x00,100);
do
{
printf ("Bitte den Betrag in EURO eingeben: ");
scanf ("%s", sEuro);
}while(checkinput(sEuro));
printf ("Betrag in EUR: %s\n", sEuro);
sscanf(sEuro,"%f",&fEuro);
fAts=fEuro*CHANGE;
printf ("Betrag in ATS: %f\n", fAts);
}
int checkinput(char *sEingabe)
{
int i;
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':
case '.':
continue;
break;
default:
printf("Bitte geben Sie nur Zahlen ein !\n");
return 1; /* true */
}
}
return 0; /* false */
}
int checkchoice(char *sChoice)
{
if (strlen(sChoice) != 1)
{
printf("Bitte geben Sie nur 1,2 oder 3 ein !\n");
return 1; /* true */
}
switch (sChoice[0])
{
case '1':
case '2':
case '3':
break;
default:
printf("Bitte geben Sie nur 1,2 oder 3 ein !\n");
return 1; /* true */
}
return 0; /* false */
}
/* Uebungsergaenzung
1.) Vorwaertsdeklaration der Funktion ats_in_eur() erzeugen.
2.) Definition der Funktion ats_in_eur().
3.) Aufruf der Funktion ats_in_eur().
4.) Programm so umbauen, dass der Benutzer Kommazahlen nur mit Beistrich eingeben kann.
5.) Programm so umbauen, dass der Benutzer Kommazahlen mit Beistrich angezeigt bekommt.
Tipps:
- um eine Kommazahl in einen String umzuwandeln verwende die Systemfunktion sprintf()
- um in einem String ein Zeichen durch ein anderes Zeichen zu ersetzen verwende
folgende selbst zu definierende Funktion:
void my_chr_replace(char *string,char old,char new); // Vorwaertdeklaration
In dieser Funktion analysiere den String mit einer Schleife. Wenn das "old"-Zeichen
vorhanden ist ersetze es durch das "new"-zeichen.
6.) Programm so umbauen, dass bei mehreren eingegebenen Beistrichen eine Fehlermeldung erscheint
und der Benutzer die Eingabe wiederholen muss.
*/