Palindrom-Test in C
Saturday, 25 April 2009
Tolle Übungsaufgabe in C: Ein Programm (bestehend aus 3 Dateien) das prüft, ob der eingegebene String ein Palindrom ist. Zudem soll das Programm auch Palindrome erkennen, die Leerzeichen enthalten und Groß- bzw. Kleinschreibung nicht unterscheidet.
/** * Funktionen des Palindrom-Programms * * Rainer Hihn */ #include/** * ermittelt die Laenge eines Strings */ int lengthOfString(char cWord[]) { int i = 0; /** * solang das Ende nicht erreicht ist * wird der Wert i um 1 erhöht */ while(cWord[i] != '\0') { i++; } return i; } /** * prueft, ob der angegebe String ein Palindrom ist */ int isPalindrom(char cWord[]) { int i = 0; int length = lengthOfString(cWord); for(i = 0; i <= (length-1); i++) { /** * vergleiche ersten und letzten, zweiten und vorletzten etc Buchstaben */ if(cWord[i] != cWord[((length-1)-i)]) { /** * vergleiche Gross- und Kleinschreibung */ if(cWord[i]+32 != cWord[((length-1)-i)] && cWord[i]-32 != cWord[((length-1)-i)]) { return 0; } } } return 1; }
/***********************
* Palindromtest
*
* Rainer Hihn
*/
#include "palindromfun.h"
#define LENGTH 63
int main(void)
{
/**
* Variablendeklaration
*/
char cWord[LENGTH] = {0};
char cWordWork[LENGTH] = {0};
int i = 0;
int j = 0;
/**
* Benutzereingabe String
*/
printf("Bitte ein Wort eingeben \n");
scanf("%62[^\n]s", cWord);
for(i = 0; i <= LENGTH-1; i++)
{
if(cWord[i] != ' ')
{
cWordWork[j] = cWord[i];
j++;
}
}
if(isPalindrom(cWordWork))
{
printf("%s ist ein Palindrom \n", cWord);
}
else {
printf("%s ist kein Palindrom \n", cWord);
}
return 0;
}
/** * Headerdatei fuer Palindrom * Funktiondeklarierung * * Rainer Hihn */ #includeint isPalindrom(char *); int lengthOfString(char *);