Hallo!
Ich habe ein Problem mit folgendem Programm:
Code:
#include <stdio.h>
#include <string.h>
char eingabeText[50];
void zykl(char eingabe);
main()
{
char menueZykl = '1', menueVersch = '2', menueKombi = '3', menueAbbr = '4', menueEing;
do
{
system("CLS");
printf("\t\t**************************************************\n"
"\t\t* *\n"
"\t\t* Waehlen Sie ein Codierungsverfahren aus: *\n"
"\t\t* *\n"
"\t\t* %c - Zyklische Verschiebung *\n"
"\t\t* %c - Verschiebung *\n"
"\t\t* %c - Kombi *\n"
"\t\t* %c - Abbruch *\n"
"\t\t* *\n"
"\t\t**************************************************\n\n", menueZykl, menueVersch, menueKombi, menueAbbr);
scanf("%c", &menueEing);
printf("\nBitte geben Sie nun einen Text ein. Hinweis: Es duerfen nur \"einfache\"\n"
"Buchstaben \x28keine Umlaute, etc.\x29, Ziffern, das Leerzeichen und Zeilenumbrueche\n"
"verwendet werden.\n"
"Schliessen Sie hierauf Ihre Eingabe mit dem \'#\'-Zeichen ab.\n\n"
" > ");
scanf("%50[^#]", eingabeText);
if(menueEing == menueZykl)
zykl(*eingabeText);
}
while(menueEing != menueAbbr);
}
void zykl(char eingabe)
{
char ausgabeText[50];
int i, position, laenge;
laenge = strlen(eingabeText);
printf("\nIhre Eingabe lautete: %s\n\n", eingabeText);
printf("Geben Sie nun an, um wieviele Stellen jeder Buchstabe\n"
"im Alphabet verschoben werden soll: ");
scanf("%d", &position);
for(i = 0; i <= laenge; i++)
{
if(eingabeText[i] >= 65 && eingabeText[i] <= 90 || eingabeText[i] >= 97 && eingabeText[i] <= 122)
{
while(eingabeText[i] >= 65 && eingabeText[i] <= 90)
eingabeText[i] = eingabeText[i] + 32;
ausgabeText[i] = eingabeText[i] + position;
}
else if(eingabeText[i] = 32)
ausgabeText[i] = eingabeText[i];
}
printf("\nVerschluesselt: ");
for(i = 0; i < laenge; i++)
printf("%c", ausgabeText[i]);
printf(".\n\n");
system("PAUSE");
}
Nach der Eingabe von "eingabeText" überspringt er mir einfach die folgenden scanf-Anweisungen. Kann mir hier jemand weiterhelfen?
Lesezeichen