#include #include #include int is_palindrome(char *wort) ///Funktion, die prüft ob das Wort ein Palindrom ist oder nicht { int len = strlen(wort); ///hier wird die Länge des Wortes ermittelt int i; for (i = 0; i < len / 2; i++) ///Da Wort wird von außen nach innen verglichen: erster und letzter Buchstabe usw. { if (tolower(wort[i]) != tolower(wort[len - 1 - i])) ///prüft ob die Zeichen, die verglichen werden gleich oder ungleich sind { ///Groß- und Kleinschreibung wird außer Acht gelassen return 0; ///Wort ist kein Palindrom sofort return 0 } } return 1; ///Wort ist ein Palindrom --> alle Zeichen waren gleich } int main() { char text[1001]; ///Index beginnt immer bei 1 deshalb 1001 char *teiler = " ,:"; ///Diese Zeichen gelten als Trennzeichen char *token; ///Zeiger der dann später auf jedes Wort zeigt printf("Geben Sie Zeilen ein:\n"); scanf("%1000[^\n]s",text); token = strtok(text, teiler); ///teilt den Text beim ersten Trennzeichen und gibt das erste Wort zurück while (token != NULL) ///Solange es noch weitere Wörter gibt... { if (is_palindrome(token) == 1) ///prüft man ob es ein Palindrom ist und wenn ja gibt man es wieder aus { printf("........ %s\n", token); } token = strtok(NULL, teiler); ///gehe zum nächsten Wort } return 0; }