ich habe eine Stringverarbeitungsaufgabe in C++ mit der ich nicht ganz zurecht komme.
Würde mich über Antworten/Erklärungen u Lösungsvorschläge/Korrekturen freuen.
Aufgabe:
Erstellen Sie eine Funktion einfuegen mit folg. Funktionsprototypen:
string einfuegen(string str1,string str2,string str3);
Die Funktion sucht im Str1 nach allen Stellen an denen der Teilstring str2 vorkommt und fügt direkt hinter jedem gefundenen str2 den str3 in str1 ein.Der Modifizierte String soll als Return Wert zurückgegeben werden.
Meine Lösung:
#include
#include
using namespace std;
string einfuegen(string str1,string str2,string str3)
{
string::size_type pos=0; //Anfangsposition
string str_mod; //mod. String Deklarierung
while(1)
{
pos=str1.find(str2);
if(pos==string::npos) //wenn kein str2
{
break;
}
else
{
str_mod=str1.insert(pos+str2.size(),str3); //str3 für str2 in str 1 einfuegen
}
pos++;
}
return str_mod;
}
Hauptfunktion:
Void Main()
{
string s1(„Hallo Frau Maier, Hallo Herr Maier“);
string s2(„Hallo“);
string s3(„Guten Tag“);
string str_mod;
str_mod=einfuegen(s1,s2,s3);
cout