Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- /* Verfügbare Memes/Datentypen (Vereinfacht)
- Einfache Zahl: "int" | "unsigned long long" für Große Zahlen ohne Negativwert (0 bis 18446744073709551615) | "long long" für Große Zahlen mit Negativwert (–9,223,372,036,854,775,808 bis 9,223,372,036,854,775,807)
- Zeichen/Char/Buchstaben: "char"
- Zeichenketten: "string"
- "unsigned" heißt quasi kann nicht negativ sein*/
- using namespace std;
- int longestWord(string BAN);
- int main(void)
- {
- string BAN;
- cout << "Gebe Satz ein: ";
- getline(cin, BAN);
- longestWord(BAN);
- while (true);
- return 0;
- }
- int longestWord(string BAN)
- {
- // Ich habe offensichtlich nicht den Einfachsten weg genommen um an das Längste "Wort" zu kommen.
- // Variablen
- int longestYet = 0; // Hält die Anzahl an Chars im Längsten Wort bis jetzt fest
- int longestYetPos = 0; // Hält die "Position" des Längstem Worts fest
- int SizeNow = 0; // Hält die derzeitige "Größe" des Wortes fest, welches inspiziert wird
- int PosNow = 0; // Hält die derzeitige "Position" des Wortes fest, welches inspiziert wird.
- int len = BAN.length() - 1; // senlen ist die Große des "sen" Char Arrays
- for (int i = 0; i <= len; ++i)//Dies ist eine ganz normale For Schleife, welche bis zum Ende des Char Array arbeitet, mithilfe der Länge des Arrays.
- {
- char ch = BAN[i]; // Setzt "ch" zum Derzeitigen Char welche der Array durchnimmt.
- if (ch == ' ') // Mithilfe von Switch wird festgestellt ob es sich um ein Neues Wort oder eben nicht handelt
- { // Neues Wort fängt an
- SizeNow = 0;
- PosNow = i + 1;
- }
- else
- { // Immer noch das Derzeitige wort
- SizeNow++;
- // Falls SizeNow großer ist als das bisher größte Wort, ist das nun das neue "longestYet" Wort, die Position wird ebenfalls gespeichert in longestYetPos;
- if (SizeNow > longestYet)
- {
- longestYet = SizeNow;
- longestYetPos = PosNow;
- }
- }
- }
- // Gebe das Resultat aus mithilfe von sen[] und dem longestYetPos und longestYet.
- // Das Wort wird "Extrahiert" aus dem Char Array, da die For Schleife bei longestYetPos Beginnt, und bis zum Ende des Wortes mithilfe der longestYet Variable Arbeitet.
- cout << "Laengstes Wort: ";
- for (int j = longestYetPos; j <= (longestYetPos - 1) + longestYet; j++)
- {
- char ch = BAN[j];
- cout << ch;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement