Länge, kleinster und größter Buchstabe mit C herausfinden
Monday, 18 May 2009
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 */ #includeint 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; }