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

1 Lösung Lösung öffentlich
#262

Zeichenkette einlesen, auf 10 Wörter prüfen und jedes Vokal ersetzen

Anfänger - C von Cara - 02.04.2020 um 17:41 Uhr
Schreibe ein Programm welches den Benutzer auffordert eine Zeichenkette einzugeben. Diese Zeichenkette sollte mindestens 10 Wörter haben. Wenn diese Anforderung nicht gegeben ist, so wird erneut zur Eingabe aufgefordert, solange bis er 10 Wörter oder "exit" eingibt. Bei "exit" wird das Programm beendet.

Beinhaltet die eingegebene Zeichenkette mindestens 10 Wörter, so werden alle Vokale durch ein "i" ersetzt und ausgeben.
#1
vote_ok
von kathleenw (3600 Punkte) - 20.07.2020 um 11:44 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(void){
    char zeichenkette[200];
    int leerzeichen, i;
    
    do {
        printf("Bitte gib eine Zeichenkette mit mindestens 10 Wörtern (abbruch mit exit) ein: \n");
        fgets(zeichenkette, 200, stdin);
        leerzeichen = 0;
        
        //Zähle die Leerzeichen
        for (i=0; i<strlen(zeichenkette); i++) {
            if(zeichenkette[i]==' ')
                leerzeichen++;
        }
        if (strcspn(zeichenkette, "exit") == 0 && leerzeichen == 0)
            return EXIT_FAILURE;
        if (leerzeichen<9)
            printf("Es sind zuwenig Wörter eingegeben. Nochmal\n");
    }while(leerzeichen<9);
    
    //wenn mehr als 10 Wörter ersetzen aller Vokale durch 'i'
    for (i=0; i<strlen(zeichenkette); i++) {
        if(zeichenkette[i]=='a' || zeichenkette[i]=='A' ||zeichenkette[i]=='e' ||zeichenkette[i]=='E' ||zeichenkette[i]=='o' ||zeichenkette[i]=='O' ||zeichenkette[i]=='u' ||zeichenkette[i]=='U' || zeichenkette[i]=='I') {
            zeichenkette[i] = 'i';
        }
    }
    
    //Ausgabe
    printf("%s ", zeichenkette);
    
    return EXIT_SUCCESS;
}

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

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