<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[&amp;quot;Suchen&amp;quot; und &amp;quot;Ersetzen&amp;quot; Problem mit Backslash-Zeichen]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich habe ein Problem mit &quot;Suchen&quot; und &quot;Ersetzen&quot; innerhalb eines Strings.<br />
Das Programm funktioniert genau wie es soll, solange man nicht versucht Backslashes (\) zu suchen und mit irgendetwas zu ersetzen.</p>
<p>Es erscheint keine Fehlermeldung, doch das Programm hängt sich beim Ausführen auf. Komme nur mit &quot;strg+c&quot; wieder raus.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

// HomeString = der 'Quell'-String in dem gesucht wird
// SearchString = die Zeichen nach denen in HomeString gesucht werden soll
// ReplaceWithString = die Zeichen, welche SearchString ersetzten sollen

string ReplaceString(string HomeString, string SearchString, string ReplaceWithString)
{
		if (SearchString != ReplaceWithString)
		{
			string::size_type pos = 0;
			while( (pos = HomeString.find(SearchString, pos)) != string::npos )
			{
				HomeString.replace( pos, SearchString.size(), ReplaceWithString);
				pos++;
			}
		}
		return HomeString;
}

int main()
{	
	string home = &quot;C:\\ordner\\ordner2&quot;;
	cout &lt;&lt; home &lt;&lt; endl;
	home = ReplaceString(home, &quot;\\&quot;, &quot;\\\\&quot;); // Backslash funktioniert nur mit zusätzlichem Zeichen: home = ReplaceString(home, &quot;r\\&quot;, &quot;\\\\&quot;) funktioniert...
    cout &lt;&lt; home &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Wäre fantastisch wenn jemand eine Lösung für das Problem hätte!?</p>
<p>MfG<br />
robomarv</p>
<p>(P.s.: die Funktion soll in einem komplexeren Programm öfters verwendet werden --&gt; daher die Aufteilung in 'ReplaceString' und 'main')<br />
(P.p.s.: benutze VisualStudio 2008)</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/243246/quot-suchen-quot-und-quot-ersetzen-quot-problem-mit-backslash-zeichen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 04:48:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/243246.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 14 Jun 2009 16:22:36 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to &amp;quot;Suchen&amp;quot; und &amp;quot;Ersetzen&amp;quot; Problem mit Backslash-Zeichen on Sun, 14 Jun 2009 16:22:36 GMT]]></title><description><![CDATA[<p>Hallo zusammen!</p>
<p>Ich habe ein Problem mit &quot;Suchen&quot; und &quot;Ersetzen&quot; innerhalb eines Strings.<br />
Das Programm funktioniert genau wie es soll, solange man nicht versucht Backslashes (\) zu suchen und mit irgendetwas zu ersetzen.</p>
<p>Es erscheint keine Fehlermeldung, doch das Programm hängt sich beim Ausführen auf. Komme nur mit &quot;strg+c&quot; wieder raus.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

// HomeString = der 'Quell'-String in dem gesucht wird
// SearchString = die Zeichen nach denen in HomeString gesucht werden soll
// ReplaceWithString = die Zeichen, welche SearchString ersetzten sollen

string ReplaceString(string HomeString, string SearchString, string ReplaceWithString)
{
		if (SearchString != ReplaceWithString)
		{
			string::size_type pos = 0;
			while( (pos = HomeString.find(SearchString, pos)) != string::npos )
			{
				HomeString.replace( pos, SearchString.size(), ReplaceWithString);
				pos++;
			}
		}
		return HomeString;
}

int main()
{	
	string home = &quot;C:\\ordner\\ordner2&quot;;
	cout &lt;&lt; home &lt;&lt; endl;
	home = ReplaceString(home, &quot;\\&quot;, &quot;\\\\&quot;); // Backslash funktioniert nur mit zusätzlichem Zeichen: home = ReplaceString(home, &quot;r\\&quot;, &quot;\\\\&quot;) funktioniert...
    cout &lt;&lt; home &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Wäre fantastisch wenn jemand eine Lösung für das Problem hätte!?</p>
<p>MfG<br />
robomarv</p>
<p>(P.s.: die Funktion soll in einem komplexeren Programm öfters verwendet werden --&gt; daher die Aufteilung in 'ReplaceString' und 'main')<br />
(P.p.s.: benutze VisualStudio 2008)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726484</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726484</guid><dc:creator><![CDATA[robomarv]]></dc:creator><pubDate>Sun, 14 Jun 2009 16:22:36 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Suchen&amp;quot; und &amp;quot;Ersetzen&amp;quot; Problem mit Backslash-Zeichen on Sun, 14 Jun 2009 16:36:05 GMT]]></title><description><![CDATA[<p>pos += ReplaceWithString.length(); statt pos++</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726492</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726492</guid><dc:creator><![CDATA[rater]]></dc:creator><pubDate>Sun, 14 Jun 2009 16:36:05 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Suchen&amp;quot; und &amp;quot;Ersetzen&amp;quot; Problem mit Backslash-Zeichen on Sun, 14 Jun 2009 16:56:14 GMT]]></title><description><![CDATA[<p>Zeigt wieder mal die Klasse der Std.Lib, dass sich jeder sowas selber schreiben muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726509</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726509</guid><dc:creator><![CDATA[hehehe]]></dc:creator><pubDate>Sun, 14 Jun 2009 16:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Suchen&amp;quot; und &amp;quot;Ersetzen&amp;quot; Problem mit Backslash-Zeichen on Sun, 14 Jun 2009 17:06:04 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;string&gt;
#include &lt;iostream&gt;
#include &lt;boost/algorithm/string.hpp&gt;

int main()
{
	using namespace std;
    using namespace boost;

	string home = &quot;C:\\ordner\\ordner2&quot;;
    cout &lt;&lt; home &lt;&lt; endl;

	home = replace_all_copy( home, &quot;\\&quot;, &quot;\\\\&quot; );
    // Oder
    replace_all( home, &quot;\\&quot;, &quot;\\\\&quot; );

    cout &lt;&lt; home &lt;&lt; endl;
    return 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1726519</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726519</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Sun, 14 Jun 2009 17:06:04 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Suchen&amp;quot; und &amp;quot;Ersetzen&amp;quot; Problem mit Backslash-Zeichen on Sun, 14 Jun 2009 17:47:41 GMT]]></title><description><![CDATA[<p>warum willst du eigtl unbedingt mit \\ statt / arbeiten?</p>
<p>C:/Programme/<br />
geht genau so, wie<br />
C:\\Programme\\</p>
<p>Ich bevorzuge auch immer die obere Lösung - schon allein, weil man dann wieder ein wenig plattformunabhängiger ist (Windows akzeptiert '\' und '/', Linux '/') - und abgesehen davon ist es eben sehr viel übersichtlicher...</p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726541</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726541</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sun, 14 Jun 2009 17:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to &amp;quot;Suchen&amp;quot; und &amp;quot;Ersetzen&amp;quot; Problem mit Backslash-Zeichen on Sun, 14 Jun 2009 17:59:48 GMT]]></title><description><![CDATA[<p>Klasse wie schnell es hier Hilfe gibt! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /></p>
<p>@rater<br />
Vielen vielen Dank! Das pos++ falsch sein könnte war mir gar nicht in den Sinn gekommen! Da hätte ich noch eine Weile rumsuchen können...</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/13210">@Badestrand</a><br />
Interessant! Danke für dein Beispiel! Mit der Boost-Bibliothek hatte ich mich bisher noch nicht beschäftigt.</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/16305">@unskilled</a><br />
Stimmt '/' wäre hier besser, nur hier ging es mir hauptsächlich um den seltsamen Fehler im Code.<br />
Diese string.replace Funktion ist auch vorerst mal nur für Windows gedacht^^</p>
<p>MfG<br />
robomarv</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1726545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1726545</guid><dc:creator><![CDATA[robomarv]]></dc:creator><pubDate>Sun, 14 Jun 2009 17:59:48 GMT</pubDate></item></channel></rss>