Palindrom-Test in C

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
 */

#include 

int isPalindrom(char *);
int lengthOfString(char *);

Leave a Reply