C :: Aufgabe #48 :: Lösung #1
4 Lösungen
#48
Testfunktion für Palindrome
Anfänger - C
von devnull
- 20.04.2014 um 17:57 Uhr
Schreibe eine Funktion isPalindrom, die für eine übergebene Zeichenkette (Wort) feststellt, ob es sich um ein Palindrom handelt (boolscher Rückgabewert).
Konsolenausgabe:
$ ./palindrom
Ein Wort eingeben: Otto
Otto ist ein Palindrom
#1
von devnull (8870 Punkte)
- 22.04.2014 um 19:24 Uhr
/* palindrom_1.c Vergleich String/Reverse-String
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <ctype.h>
/* string to lower case */
char *strlower(char *s) {
char *p;
for (p=s; *p; p++)
*p = tolower(*p);
return s;
}
/* reverse string */
char* strrev(char *s) {
char *pl, *pr;
char c;
for (pl=s, pr=s+strlen(s)-1; pr > pl; pl++,pr--) {
// vertausche rechts/links
c = *pl;
*pl = *pr;
*pr = c;
}
return s;
}
_Bool isPalindrom(char *s) {
char *sl = strlower(strdup(s));
return (strcmp(sl, strrev(strdup(sl))) == 0);
}
int main() {
char word[100];
printf("Ein Wort eingeben: ");
scanf("%s", word);
printf("%s ist %s Palindrom\n", word, isPalindrom(word)?"ein":"kein");
return 0;
}
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1
