Hallo,
ich versuche mich daran einen Palindromtest zu schreiben, nur irgendwas funktioniert nicht so wie ich es möchte,
mein programm macht folgendes richtig:
Wandelt großbuchstaben in kleine um, entfernt leerzeichen und sonderzeichen.
schreib das wort/ den satz auch rückwärts
das einzige was nicht richtig funktioniert ist der palindromvergleich wo er die einzelnen buchstaben vergleichen soll,
kann mir da jemand helfen?
hier ist mein programm:
ich versuche mich daran einen Palindromtest zu schreiben, nur irgendwas funktioniert nicht so wie ich es möchte,
mein programm macht folgendes richtig:
Wandelt großbuchstaben in kleine um, entfernt leerzeichen und sonderzeichen.
schreib das wort/ den satz auch rückwärts
das einzige was nicht richtig funktioniert ist der palindromvergleich wo er die einzelnen buchstaben vergleichen soll,
kann mir da jemand helfen?
hier ist mein programm:
Code:
#include <conio.h> /* Zugriff auf Bibliotheken */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main()
{
char i=0;
int d;
int p=0;
int y=0;
int x=0;
int l=0;
int m;
int laenge = 0;
char eingabe[255];
char wort[255];
char pali[255];
int j=0;
/* Text einlesen */
printf("Geben sie ein Wort dem Palindromtest unterzogen werden soll: ");
fgets(eingabe,255,stdin); /* Eingabe wird eingelesen, stdin beinhaltet die Tastatur */
/* Solange der Text noch nicht zu Ende ist */
while(eingabe[i] != '\0')
{
/* Wenn Zeichen ein Leerzeichen ist */
if(eingabe[i]<=64 || eingabe[i]>=123) /* Asci Code 32 ist das Leerzeichen, der rest ?!. */
{
i++;
continue; /* continue Anweisung springt weiter zum Anfang der Schleife */
}
else if(eingabe[i]>=91 && eingabe[i]<=96)
{
i++;
continue; /* continue Anweisung springt weiter zum Anfang der Schleife */
}
else if(eingabe[i]>=65 && eingabe[i]<=90)
{
printf("%c",eingabe[i]+32);
wort[j]=eingabe[i]+32;
j++;
laenge++;
}
/* sonst */
else
{
printf("%c",eingabe[i]);
wort[j]=eingabe[i];
j++;
laenge++;
}
i +=1;
}
//laenge--;
l=laenge;
m=laenge;
printf("\nDie Lange des Textes ( Anzahl der Buchstaben ) ist %d\n", laenge);
for(x=0;x<=laenge;x++)
{
pali[x]=wort[l];
l--;
printf("%c",pali[x]);
}
while(d<=laenge)
{
if(pali[d]!=wort[m])
{
printf(" \nDas Wort ist kein Palindrom ");
break;
}
else if(pali[d]==wort[m])
{
y++;
m--;
}
d++;
}
printf(" \nDas Wort ist ein Palindrom ");
getch();
return 0;
}