C :: Aufgabe #262
1 Lösung
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.
Beinhaltet die eingegebene Zeichenkette mindestens 10 Wörter, so werden alle Vokale durch ein "i" ersetzt und ausgeben.
Lösungen:
#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;
}
