Länge, kleinster und größter Buchstabe mit C herausfinden

Tolle Übungsaufgabe in C: Ein Programm das die Länge eines angegebenen Strings, den Buchstaben mit den höchsten und den Buchstaben mit den niedrigsten ASCII-Wert zurückgibt. Die Funktion dafür soll aber nur die Länge des Strings als Rückgabewert liefern – der Rest soll über Pointer gemacht werden.

/***********************
 * Stringstats
 *
 * Rainer Hihn
 */

#include 
#define LENGTH 64

/*
 * Funktion deklarieren
 */
int stringstats(char[], char *, char *);

int main(void)
{
    /**
     * Variablendeklaration
     */
    char cString[LENGTH] = {0};
    int iLength = 0;
    char cGroesster = 0;
    char cKleinster = 0;

    while(1)
    {
       /**
         * Benutzereingabe String
         */
        printf("Bitte einen String eingeben ('q' fuer Beenden) \n");
        scanf("%62s", &cString);

        /**
         * Abbruchbedingung pruefen
         */
        if(cString[0] == 'q' && cString[1] == '\0')
        {
            break;
        }

        /**
         * Funktion stringstats aufrufen
         */
        iLength = stringstats(cString, &cGroesster, &cKleinster);

        printf("Laenge: %i \n", iLength);
        printf("Kleinster Buchstabe: %c \n", cKleinster);
        printf("Groesster Buchstabe: %c \n\n", cGroesster);
    }

    return 0;
}
/**
 * Funktionen um Werte eines
 * Strings zu berechnen
 */

#include 

int stringstats(char sString[], char* cGroesster, char* cKleinster)
{
    /**
     * Variablendeklaration
     */
    int iLength = 0;
    int i = 0;
    *cKleinster = sString[0];
    *cGroesster = sString[0];

    while(sString[iLength] != '\0')
    {
        iLength++;

    }

    for(i = 0; i <= iLength-1; i++)
    {
        if(sString[i] < *cKleinster)
        {
            *cKleinster = sString[i];
        }

        if(sString[i] > *cGroesster)
        {
            *cGroesster = sString[i];
        }
    }

    return iLength;
}

Comments are closed.