<?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[funktion zum string manipulieren]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche mich gerade an einem Programm, um Text aus einer Datei aus zu lesen und ggf. zu manipulieren. Dabei habe ich eine Funktion geschrieben, die pruefen soll, ob eine Zeile mit Leerzeichen beginnt und es/sie, soweit vorhanden, loescht.</p>
<p>Hier erstmal die Funktion:</p>
<pre><code class="language-cpp">void removespace(string *fstr)
{
     string space = &quot; &quot;;
     int pos1;
     while(pos1 != string::npos)
     {
     string::size_type pos1 = (*fstr).find(space);
     (*fstr).erase(pos1,1);
     }
}
</code></pre>
<p>Ich bin Neuling und bekomme daher laufend Fehler beim compilen. Aber diesmal beschwert sich DEV C++ nicht, dafuer bekomme ich aber von Windows eine Fehlermeldung und das Programm rauscht ab. Das passiert nur wenn ich diese Funktion im Laufe des Programms aufrufe, muss also an ihr liegen.</p>
<p>Ich hatte in einem Tutorial zu Pointern gelesen, dass es eine bessere Moeglichkeit gibt als Pointer bzw. Adressen an Funktionen zu uebergeben. Dort stand dann das ist <strong>erstmal</strong> nicht wichtig nur kam dann auch nichts mehr dazu. Hat evtl. jemand einen Link zu einem Tutorial fuer eine bessere Methode?</p>
<p>Waere fuer jede Hilfe dankbar. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/249004/funktion-zum-string-manipulieren</link><generator>RSS for Node</generator><lastBuildDate>Wed, 16 Sep 2026 17:38:30 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/249004.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 01 Sep 2009 13:21:14 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 13:23:06 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>ich versuche mich gerade an einem Programm, um Text aus einer Datei aus zu lesen und ggf. zu manipulieren. Dabei habe ich eine Funktion geschrieben, die pruefen soll, ob eine Zeile mit Leerzeichen beginnt und es/sie, soweit vorhanden, loescht.</p>
<p>Hier erstmal die Funktion:</p>
<pre><code class="language-cpp">void removespace(string *fstr)
{
     string space = &quot; &quot;;
     int pos1;
     while(pos1 != string::npos)
     {
     string::size_type pos1 = (*fstr).find(space);
     (*fstr).erase(pos1,1);
     }
}
</code></pre>
<p>Ich bin Neuling und bekomme daher laufend Fehler beim compilen. Aber diesmal beschwert sich DEV C++ nicht, dafuer bekomme ich aber von Windows eine Fehlermeldung und das Programm rauscht ab. Das passiert nur wenn ich diese Funktion im Laufe des Programms aufrufe, muss also an ihr liegen.</p>
<p>Ich hatte in einem Tutorial zu Pointern gelesen, dass es eine bessere Moeglichkeit gibt als Pointer bzw. Adressen an Funktionen zu uebergeben. Dort stand dann das ist <strong>erstmal</strong> nicht wichtig nur kam dann auch nichts mehr dazu. Hat evtl. jemand einen Link zu einem Tutorial fuer eine bessere Methode?</p>
<p>Waere fuer jede Hilfe dankbar. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770321</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770321</guid><dc:creator><![CDATA[rocco123]]></dc:creator><pubDate>Tue, 01 Sep 2009 13:23:06 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 13:28:23 GMT]]></title><description><![CDATA[<p>Die bessere Methode sind Referenzen. Such mal danach in deinem Tutorial <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770333</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770333</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 01 Sep 2009 13:28:23 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 13:31:22 GMT]]></title><description><![CDATA[<p>Es geht dann wohl um Referenzen:</p>
<pre><code class="language-cpp">void removespace(string &amp;fstr) 
{
//Dann kann fstr wie ein normaler string benutzt werden, zB: fstr.length()
}
</code></pre>
<p>Du sagst, dass nur Leerzeichen am Anfang entfernt werden sollen, du suchst aber im ganzen string.<br />
pos1 gibt es zweimal!?<br />
Der Rückgabewert von find wird nicht korrekt geprüft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770335</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770335</guid><dc:creator><![CDATA[lagalopex]]></dc:creator><pubDate>Tue, 01 Sep 2009 13:31:22 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 13:40:25 GMT]]></title><description><![CDATA[<p>Mit Referenzen hat das nichts zu tun!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22125">@rocco123</a>:<br />
Hast du mal einen Code angeschaut? Erstmal wird npos nicht initialisiert und der Wert gleich mal fleissig gelesen. Dann wird npos ein Wert zugewiesen und ohne Sicherheitsabfrage, was npos ueberhaupt ist, einfach dort geloescht. Klar das es crashed, sobald npos nicht auf den String zeigt... f'`8k</p>
<p><div class="plugin-markdown"><input type="checkbox" id="checkbox245909" /><label for="checkbox245909"></label></div><a href="http://tggc.tg.funpic.de/index.php?cat=8&amp;page=5" rel="nofollow">Autocogito</a></p>
<p>Gruß, TGGC (<a href="http://www.gamestar.de/index.cfm?pid=819&amp;pk=12279" rel="nofollow">Was Gamestar sagt...</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770341</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770341</guid><dc:creator><![CDATA[TGGC]]></dc:creator><pubDate>Tue, 01 Sep 2009 13:40:25 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 13:51:08 GMT]]></title><description><![CDATA[<p>TGGC schrieb:</p>
<blockquote>
<p>Mit Referenzen hat das nichts zu tun!</p>
</blockquote>
<p>Die &quot;bessere Methode&quot; für die Übergabe an die Funktion hat sehr wohl mit Referenzen zu tun.</p>
<blockquote>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22125">@rocco123</a>:<br />
Hast du mal einen Code angeschaut? Erstmal wird npos nicht initialisiert und der Wert gleich mal fleissig gelesen. Dann wird npos ein Wert zugewiesen und ohne Sicherheitsabfrage, was npos ueberhaupt ist, einfach dort geloescht. Klar das es crashed, sobald npos nicht auf den String zeigt...</p>
</blockquote>
<p>Ersetze &quot;npos&quot; jeweils durch &quot;pos1&quot; und lass den sinnfreien Rest, der nichts mit dem Thema zu tun hat weg, dann ergibt das ne passende Aussage.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770349</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770349</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Tue, 01 Sep 2009 13:51:08 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 13:52:40 GMT]]></title><description><![CDATA[<p>Teile des Codes hatte ich aus Tutorials kopiert und dabei voellig aus dem Zusammenhang gerissen, dass die Funktion gar nicht das tut (sofern sie funktioniert) was ich will, sondern jedesmal den ganzen String loescht ist mir jetzt erst aufgefallen. Aber npos ist keine Variable sondern string::npos erhaelt man wenn der substring gar nicht gefunden wurde.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770351</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770351</guid><dc:creator><![CDATA[rocco123]]></dc:creator><pubDate>Tue, 01 Sep 2009 13:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 13:59:59 GMT]]></title><description><![CDATA[<p>Das Thema gab es neulich schon mal, rausgekommen war so etwas:</p>
<pre><code class="language-cpp">#include &lt;algorithm&gt;
#include &lt;string&gt;

void remove_chars(std::string &amp;these, char to_remove)
{
  these.erase( std::remove(these.begin(), these.end(), to_remove), these.end() );
}
</code></pre>
<p>Verwendung:</p>
<pre><code class="language-cpp">#include &lt;string&gt;

int main()
{
  std::string value = &quot;asdfghjklkjhgfdsdfghjklkjhgfdfghjk&quot;;
  remove_chars(value, 'j');
}
</code></pre>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770353</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770353</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Tue, 01 Sep 2009 13:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 14:13:19 GMT]]></title><description><![CDATA[<p>Wenn nur die Leerzeichen am Anfang entfernt werden sollen:</p>
<pre><code class="language-cpp">void trim_left(std::string&amp; s)
{
    s.erase(0, s.find_first_not_of(' '));
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1770363</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770363</guid><dc:creator><![CDATA[Ryuzaki]]></dc:creator><pubDate>Tue, 01 Sep 2009 14:13:19 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 14:30:34 GMT]]></title><description><![CDATA[<p>Klappt jetzt alles wie es soll <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
<p>Danke euch allen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770378</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770378</guid><dc:creator><![CDATA[rocco123]]></dc:creator><pubDate>Tue, 01 Sep 2009 14:30:34 GMT</pubDate></item><item><title><![CDATA[Reply to funktion zum string manipulieren on Tue, 01 Sep 2009 16:37:55 GMT]]></title><description><![CDATA[<p>rocco123 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">void removespace(string *fstr)
{
     string space = &quot; &quot;;
     int pos1;
     while(pos1 != string::npos)
</code></pre>
</blockquote>
<p>Du benutzt pos1 ohne pos1 initialisiert zu haben.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1770439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1770439</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Tue, 01 Sep 2009 16:37:55 GMT</pubDate></item></channel></rss>