bool isInString
-
Ich habe "leichte" Probleme, diese Aufgabe zu lösen.
U.a. erhalte ich folgende Fehlermeldung:
q:\informationstechnik\aufg2\aufg2\aufg2.cpp(22) : error C2065: 's1': nichtdeklarierter Bezeichner
q:\informationstechnik\aufg2\aufg2\aufg2.cpp(23) : error C2563: Listen der formalen Parameter stimmen nicht überein
q:\informationstechnik\aufg2\aufg2\aufg2.cpp(23) : error C2568: '<<': Auflösung der Funktionsüberladung nicht möglichDanke, wenn sich jemand aufopfert und mir einen Tipp geben kann.
// Aufg2.cpp : Definiert den Einstiegspunkt für die Konsolenanwendung. /* Schreibe eine Funktion mit dem Funktionskopf: bool isInString(sring s1, string s2), die überprüft, ob der erste String im zweiten enthalten ist. */ #include "stdafx.h" #include <iostream> #include <string> using namespace std; bool isInString (string s1, string s2) { if(isInString(s1, s2)) return true; else return false; } int main () { cout << "Ist string s1 in string s2 enthalten?" <<endl; cout << s1 = "Hallo" <<endl; cout << s2 = "Hallo, wie geht´s?" <<endl; if (isInString (s1, s2)) { cout << "Ja." <<endl; } else { cout << "Nein." <<endl; } }
-
Ich würde dir das lesen eines C++ Tutorials empfehlen. "Thinking in C++" bekommst du zB als kostenloses eBook...
-
Thinking in C++ habe ich seit gestern Abend in pdf-Form.
Leider, leider absolut unübersichtlich und dann noch in Englisch.
-
bool isInString (string s1, string s2) { return s1.find(s2) != std::string::npos; }so oder so ähnlich.
-
#include <iostream> #include <string> bool isInString(const std::string&, const std::string&); int main() { std::cout << "IN String V1.0" << std::endl; std::cout << "String 1: " << std::flush; std::string s1; std::getline(std::cin, s1); std::cout << "String 2: " << std::flush; std::string s1; std::getline(std::cin, s2); std::cout << (isInString(s1, s2) == true ? "Enthalten!" : "Nicht enthalten!") << std::endl; } bool isInString (const std::string& s1, const std::string& s2) { return (s1.find(s2) != std::string::npos); }...
-
hi,
wenn ich nun allerdings das beispiel von ganz oben einsetze, funktioniert es nicht. also string1: "Anna" und string2: "Hier wohnt Anna". dann gibt das programm aus, dass es nicht enthalten ist.
wie muss man das programm ändern damit es auch auf diese weise geht??
//edit:
ok habs....
#include "stdafx.h" #include <iostream> #include <string> bool isInString(const std::string&, const std::string&); int main() { std::cout << "IN String V1.0" << std::endl; std::cout << "String 1: " << std::flush; std::string s1; std::getline(std::cin, s1); std::cout << "String 2: " << std::flush; std::string s2; std::getline(std::cin, s2); std::cout << (isInString(s1, s2) == true ? "Enthalten!" : "Nicht enthalten!") << std::endl; } bool isInString (const std::string& s1, const std::string& s2) { return (s1.find(s2) != std::string::npos) || (s2.find(s1) != std::string::npos); }
-
string2 ist ja auch nicht in string1 enthalten
-
Und deine Änderung ist nicht wirklich korrekt ... du willst ja gucken ob 1. im 2. und nicht ob 2. in 1. String enthalten ...