#include #include #include int main() { char sentence[41]; char *pointer_start = &sentence[0]; char *pointer_end; //Einlesen des Satzes und in Array schreiben. printf("Enter a message: "); fgets(sentence, 41, stdin); //Länge von Array in einen Integer speichern. int length = strlen(sentence); //Sämtliche Zeichen im Array werden auf Kleinschreiben geändert. for (int i = 0; i < strlen(sentence); ++i) { sentence[i] = tolower(sentence[i]); } pointer_end = &sentence[length]; //Solange der pointer_end nicht auf einen Buchstaben zeigt bzw. ungleich pointer_start ist, // wird er runtergezählt. while (!(*pointer_end >= 'a' && *pointer_end <= 'z') && pointer_end != pointer_start) { pointer_end--; } //Die zwei pointer (pointer_start und pointer_end) werden schrittweise verglichen, solange die zwei //Integer Werte vom Pointer ungleich sind. while (*pointer_start == *pointer_end && pointer_end != pointer_start && *pointer_end != sentence[0]) { pointer_start++; pointer_end--; while (!(*pointer_start >= 'a' && *pointer_start <= 'z')) { pointer_start++; } while (!(*pointer_end >= 'a' && *pointer_end <= 'z')) { pointer_end--; } } //Ausgeben ob Palindrome oder nicht Palindrome. if (pointer_start == pointer_end || *pointer_end == sentence[0]) { printf("Palindrome"); } else { printf("Not a palindrome"); } return 0; }