Bitte eine Textzeile eingeben:
Aha, so geht das also!
Aha
so
geht
das
also
Es wurden 5 Worte eingelesen.
Versuchen Sie zunächst nur Sätze mit Großbuchstaben zu erkennen, dann erweitern Sie das Programm auch auf Kleinbuchstaben.
Tipp: Schreiben Sie zunächst eine Funktion, die prüft, ob ein einzelnes Zeichen ein Buchstabe ist oder nicht.
Alle unterstrichenen Stellen bei der Aufgabe sind Eingaben, die der Benutzer durchführen soll.
#include <fstream.h>
#include <string.h>
// Funktion zum Prüfen auf einen Buchstaben
bool ischar(char zeichen)
{
if (zeichen >= 'a' && zeichen <= 'z' ||
zeichen >= 'A' && zeichen <= 'Z' ||
// Die nächste Zeile einbinden, falls auch Zahlen erkannt werden sollen
// zeichen >= '0' && zeichen <= '9' ||
zeichen >= (char)192 && zeichen <= (char)214 ||
zeichen >= (char)216 && zeichen <= (char)246 ||
zeichen >= (char)248 && zeichen <= (char)255)
return true;
return false;
}
// Start des Hauptprogrammes
main()
{
// Konstante für die maximale Anzahl von Zeichen definieren
const int MAX_ZEICHEN = 100;
// Variable deklarieren
char text[MAX_ZEICHEN]; // Variable für die Textzeile
int worte = 0; // Variable für die Anzahl der Worte
// Die Textzeile einlesen
cout << "Bitte eine Textzeile eingeben: ";
cin.getline(text, MAX_ZEICHEN);
// Worte in Textzeile zählen und ausgeben
bool letztes_zeichen = false; // Variable um festzustellen ob das letzte
// Zeichen ein Buchstabe war.
for (int i = 0; i < strlen(text); i++)
{
if (ischar(text[i]))
{
cout << text[i]; // Zeichen ausgeben
letztes_zeichen = true; // letztes_zeichen auf true setzen
}
else
{
if (letztes_zeichen) // war Zeichen zuvor ein Buchstabe?
{
cout << endl;
worte++; // Zähler für Worte um eins erhöhen
}
letztes_zeichen = false; // letztes_zeichen auf false setzen
}
}
if (letztes_zeichen) // war Zeichen zuvor ein Buchstabe?
{
cout << endl;
worte++; // Zähler für Worte um eins erhöhen
}
cout << "Es wurden " << worte << " Worte eingelesen." << endl;
}