F
fireyoutz
Könnt ihr mir bei folgender Aufgabe helfen??
Hi Leute...
Also wir haben heut folgende Aufgabe gestellt bekommen:
Ein Palindrom ist ein Wort oder Satz, das bzw. der von vorn und von hinten gelesen den gleichen Wortlaut besitzt, z.B.:
OTTO
REITTIER
LAGERREGAL
RELIEFPFEILER
EIN NEGER MIT GAZELLE ZAGT IM REGEN NIE
NEUER DIENST MAG AMTSEID REUEN
DIE LIEBE TOTE! BEILEID!
Das Programm soll testen, ob eine eingegebene Zeichenkette ein Palindrom ist oder nicht!
Beachten Sie, dass bei Sätzen keine Satzzeichen eingegeben werden dürfen und die Leerzeichen zwischen den Wörtern zu ignorieren sind!
Hier ist der Code:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
void main()
{
char text[201];
unsigned int i, j;
bool palindrom = true;
cout << "Das Programm prüft, ob ein eingegebener Text ein Palindromist!"
<< endl;
cout << "Bitte Text eingeben!" << endl;
cin.getline(text, 200);
for (i=0, j=strlen(text)-1;i<strlen(text);i++, j--)
{
while (text == ' ')
i++;
while (text[j] == ' ')
j--;
if (text != text[j])
{
palindrom = false;
break;
}
}
if (palindrom == true)
cout << " Text ist ein Palindrom!";
else
cout << " Text ist kein Palindrom!";
getchar();
}
Meine Frage:
Kann mir jemand genau erklären wie die FOR schleife arbeitet, also warum
j=strlen(text)-1;i<strlen(text)
und wie ist das zu verstehen??:
while (text == ' ')
Außerdem bin ich der Meinung dass in diesem Lösungsbeispiel unötige Headerdatein eingebunden sind...
Wäre über eure Hilfe sehr froh!
Greetz fireyoutz
Hi Leute...
Also wir haben heut folgende Aufgabe gestellt bekommen:
Ein Palindrom ist ein Wort oder Satz, das bzw. der von vorn und von hinten gelesen den gleichen Wortlaut besitzt, z.B.:
OTTO
REITTIER
LAGERREGAL
RELIEFPFEILER
EIN NEGER MIT GAZELLE ZAGT IM REGEN NIE
NEUER DIENST MAG AMTSEID REUEN
DIE LIEBE TOTE! BEILEID!
Das Programm soll testen, ob eine eingegebene Zeichenkette ein Palindrom ist oder nicht!
Beachten Sie, dass bei Sätzen keine Satzzeichen eingegeben werden dürfen und die Leerzeichen zwischen den Wörtern zu ignorieren sind!
Hier ist der Code:
#include <stdio.h>
#include <conio.h>
#include <iostream.h>
#include <iomanip.h>
#include <stdlib.h>
#include <time.h>
void main()
{
char text[201];
unsigned int i, j;
bool palindrom = true;
cout << "Das Programm prüft, ob ein eingegebener Text ein Palindromist!"
<< endl;
cout << "Bitte Text eingeben!" << endl;
cin.getline(text, 200);
for (i=0, j=strlen(text)-1;i<strlen(text);i++, j--)
{
while (text == ' ')
i++;
while (text[j] == ' ')
j--;
if (text != text[j])
{
palindrom = false;
break;
}
}
if (palindrom == true)
cout << " Text ist ein Palindrom!";
else
cout << " Text ist kein Palindrom!";
getchar();
}
Meine Frage:
Kann mir jemand genau erklären wie die FOR schleife arbeitet, also warum
j=strlen(text)-1;i<strlen(text)
und wie ist das zu verstehen??:
while (text == ' ')
Außerdem bin ich der Meinung dass in diesem Lösungsbeispiel unötige Headerdatein eingebunden sind...
Wäre über eure Hilfe sehr froh!
Greetz fireyoutz