C :: Aufgabe #48 :: Lösung #1

4 Lösungen Lösungen öffentlich
#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
vote_ok
von devnull (8870 Punkte) - 22.04.2014 um 19:24 Uhr
Quellcode ausblenden C-Code
/*  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

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben