#include <iostream>
#include <string>
#include <cstring>
#include <cstdio>
using namespace std;
bool isLonger(string first, string second)
{
return first.size() > second.size();
}
string Text(string Eingabe)
{
cout << "Geben Sie einen Text ein\n";
getline(cin, Eingabe);
return Eingabe;
}
int main()
{
int number_1;
do
{
cout << "Was wollen Sie tun?\n";
cout << "(1) String anschauen\n";
cout << "(2) Char anschauen\n";
cout << "(0) Exit\n";
cin >> number_1;
switch(number_1)
{
case 1:
{
cout << "Sie haben sich dazu entschieden, einen String anzusehen!\n";
cout << "\n";
int number_2;
do
{
cout << "Was wollen Sie anschauen?\n";
cout << "(01) Passwortabfrage\n";
cout << "(02) Die Laenge zweier Strings miteinander vergleichen\n";
cout << "(03) Stringlaenge anhand von Buchstaben berechnen\n";
cout << "(04) Strings addieren\n";
cout << "(05) String Anfang und Ende ermitteln\n";
cout << "(06) Groesse eines Strings ermitteln\n";
cout << "(07) Refernz auf String\n";
cout << "(08) Operator +=\n";
cout << "(09) 5 Saetze ausgeben\n";
cout << "(00) Zurueck\n";
cin >> number_2;
switch(number_2)
{
case 1:
{
string e;
e = "Maximilian*Maximilian";
cout << "\n";
cout << "\t Menuepunkt(01) Passwortabfrage!\n";
cout << "\n";
do
{
cout << "Wie lautet das Passwort?\n";
cin >> e;
if(e=="Maximilian*Maximilian")
cout << "Richtig eingegeben";
else
cout << "Nicht richtig eingegeben!\n";
}while(e!="Maximilian*Maximilian");
break;
}
case 2:
{
cout << "\tMenuepunkt(02) Die Laenge zweier Strings miteinander vergleichen\n";
string erste;
cin >> erste;
string zweite;
cin >> zweite;
if(isLonger(erste,zweite))
cout << "Der erste ist länger";
else
cout << "Der zweite ist länger";
break;
}
case 3:
{
cout << "\tMenuepunkt(03) Stringlaenge anhand von Buchstaben berechnen\n";
string str;
cout << "Bitte geben Sie einen Text ein!\n";
getline(cin, str);
cout << "Ihr Text hat " << str.size() << " Buchstaben\n";
break;
}
case 4:
{
cout << "\tMenuepunkt(04) Strings addieren\n";
string Text_1, Text_2, Text_3;
cout << "Geben Sie die erste Haelfte des Satzes ein:\n";
getline(cin, Text_1);
cout << "Geben Sie die zweite Haelfte des Satzes ein:\n";
getline(cin, Text_2);
Text_3 = Text_1 + Text_2;
cout << "Zusammengefuegt heisst der Satz:\n";
cout << Text_3;
break;
}
case 5:
{
cout << "\tMenuepunkt(05) String Anfang und Ende ermitteln\n";
string str("Test string");
string::iterator it;
for (it=str.begin(); it < str.end(); it++)
cout << *it;
break;
}
case 6:
{
cout << "\tMenuepunkt(06) Groesse eines Strings ermitteln\n";
string Text;
cout << "Geben Sie einen Text ein!\n";
cin >> Text;
cout << sizeof(Text) << "\n";
cout << "Groesse:\t " << Text.size() << "\n";
cout << "Laenge:\t" << Text.length ()<< "\n";
cout << "Kapazitaet:\t" << Text.capacity() << "\n";
cout << "Max. Laenge:\t" << Text.max_size() << "\n";
break;
}
case 7:
{
cout << "Menuepunkt(07) Refernz auf String\n";
string Eingabe;
string &Text_1 =Text(Eingabe);
cout << Text_1 << "\n";
break;
}
case 8:
{
cout << "Menuepunkt(08) Operator +=\n";
string Vorname;
string Familienname;
cout << "Geben Sie Ihren Vornamen ein: \n";
getline(cin, Vorname);
cout << "Geben Sie Ihren Familiennamen ein: \n";
getline(cin, Familienname);
Vorname += Familienname;
Vorname += '\n';
cout << Vorname << "\n";
break;
}
case 9:
{
cout << "Menuepunkt(09) 5 Saetze ausgeben\n";
string Satz[5];
cout << "Geben Sie fuenf Saetze ein!\n";
for (int i=0; i<5; i++)
{
cout << "Satz[" << i <<"]: ";
getline(cin, Satz[i]);
}
cout << "\n";
cout << "Das haben Sie eingegeben: \n";
cout << "\n";
for (int i=0; i<5; i++)
{
cout << "Satz[" << i << "]: " << Satz[i] << "\n";
}
cout << "\n";
break;
}
case 0:
{
cout << "Menuepunkt Zurueck\n";
break;
}
}
}while(number_2!=0);
break;
}
case 2:
{
cout << "Sie haben sich dazu entschieden, einen Char anzusehen!\n";
cout << "\n";
int number_3;
do
{
cout << "Was wollen Sie anschauen?\n";
cout << "(01) Funktion strrchr\n";
cout << "(02) Funktion strchr\n";
cout << "(03) Suche nach einem Buchstaben in einem Satz\n";
cout << "(04) Funktion getline\n";
cout << "(05) Funktion putback\n";
cout << "(06) Funktion put(char)\n";
cout << "(07) Funktion strstr() bzw. die Suche nach Woertern in einem Text\n";
cout << "(00) Zurueck\n";
cin >> number_3;
switch(number_3)
{
case 1:
{
cout << "Menuepunkt (01) Funktion strrchr\n";
char str []= "Das ist ein einfacher string.\n";
char * pstr;
cout << str;
pstr = strrchr(str,'s');
cout << "Letzte Stelle von 's' wurde gefunden an " << pstr-str+1 << " \n";
break;
}
case 2:
{
cout << "Menuepunkt (02) Funktion strchr\n";
char str[]="Das ist ein einfacher string";
char *pch;
cout << "Gesucht wird das 's' in " << str << "\n";
pch = strchr(str,'s');
while(pch!=NULL)
{
cout << "Gefunden an " << pch-str+1 << "\n";
pch = strchr(pch+1,'s');
}
break;
}
case 3:
{
cout << "Menuepunkt(03) Suche nach einem Buchstaben in einem Satz\n";
char String[10000];
char *pString;
char Buchstabe;
cout << "Geben Sie einen String von weniger als 10000 Buchstaben ein!\n";
gets(String);
cout << "Nach welchem Buchstaben soll gesucht werden?\n ";
cin >> Buchstabe;
pString = strchr(String, Buchstabe);
while(pString!=NULL)
{
cout << "Gefunden an " << pString-String+1 << "\n";
pString = strchr(pString+1, Buchstabe);
}
break;
}
case 4:
{
cout << "Menuepunkt(04) Funktion getline\n";
char name[256], titel[256];
cout << "Geben Sie Ihren Namen ein:";
cin.getline(name,256);
cout << "Geben Sie Ihren Lieblingsfilm ein:";
cin.getline(titel,256);
cout << name << "´s Lieblingsfilm ist " << titel << "\n";
break;
}
case 5:
{
cout << "Menuepunkt (05) Funktion putback\n";
char c;
int n;
char str[256];
cout << "Geben Sie eine Zahl oder ein Wort ein:";
c = cin.get();
if((c>='0')&&(c<='9'))
{
cin.putback(c);
cin >> n;
cout << "Sie haben eine Nummer eingegeben " << n << endl;
}
else
{
cin.putback(c);
cin >> str;
cout << "Sie haben ein Wort eingegeben " << str << endl;
}
break;
}
case 6:
{
cout << "Menuepunkt (06) Funktion put(char)\n";
char c;
cout << "Geben Sie einen Buchstaben ein!\n";
cin >> c;
for(c = c; c<='z'; c++)
{
putchar(c);
}
break;
}
case 7:
{
cout << "Menuepunkt (07) Funktion strstr() bzw. die Suche nach Woertern in einem Text\n";
char String[100000];
char *pString;
char Wort[256];
cout << "Geben Sie einen Text von weniger als 100000 Buchstaben ein!\n";
gets(String);
cout << "Nach welchem Wort soll gesucht werden?\n";
cin.getline(Wort, 256);
pString = strstr(String, Wort);
while(pString!=NULL)
{
cout << "Gefunden an " << pString-String+1 << "\n";
pString = strstr(pString+1, Wort);
}
break;
}
case 0:
{
cout << "Zurueck!\n";
break;
}
}
}while(number_3!=0);
break;
}
case 3:
{
cout << "Exit durch Abbruch!\n";
break;
}
}
}while(number_1!=0);
return 0;
}