<?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[String Spaltung..]]></title><description><![CDATA[<p>Mein string:</p>
<pre><code class="language-cpp">str = &quot;hallo | auto | test | ende&quot;;
</code></pre>
<p>Jetzt will ich die einzelnen Inhalte speichern:</p>
<pre><code class="language-cpp">if(str.find(&quot;|&quot;) != string::npos)
				{				
					int begin = 0;
					for(int i = 0; i &lt; str.size(); i++)
					{						
						if(str[i] == '|')
						{	
							cout &lt;&lt; &quot;pos:&quot; &lt;&lt; i &lt;&lt; endl;

							string x = str.substr(begin, i-begin);
							cout &lt;&lt; &quot;exec:[&quot; &lt;&lt; x &lt;&lt; &quot;]&quot; &lt;&lt; endl;
							begin = i+2;
						}						
                    }  
				}
</code></pre>
<p>Die Methode sucht den string bis zum Trennzeichen '|' ab und dann wird der Inhalt gespeichert so lange bis keins Trennzeichen da ist. Doch wie bekomme ich den letzten Wert &quot;ende&quot; gespeichert?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/160936/string-spaltung</link><generator>RSS for Node</generator><lastBuildDate>Fri, 11 Sep 2026 10:43:07 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/160936.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 01 Oct 2006 14:29:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 14:29:49 GMT]]></title><description><![CDATA[<p>Mein string:</p>
<pre><code class="language-cpp">str = &quot;hallo | auto | test | ende&quot;;
</code></pre>
<p>Jetzt will ich die einzelnen Inhalte speichern:</p>
<pre><code class="language-cpp">if(str.find(&quot;|&quot;) != string::npos)
				{				
					int begin = 0;
					for(int i = 0; i &lt; str.size(); i++)
					{						
						if(str[i] == '|')
						{	
							cout &lt;&lt; &quot;pos:&quot; &lt;&lt; i &lt;&lt; endl;

							string x = str.substr(begin, i-begin);
							cout &lt;&lt; &quot;exec:[&quot; &lt;&lt; x &lt;&lt; &quot;]&quot; &lt;&lt; endl;
							begin = i+2;
						}						
                    }  
				}
</code></pre>
<p>Die Methode sucht den string bis zum Trennzeichen '|' ab und dann wird der Inhalt gespeichert so lange bis keins Trennzeichen da ist. Doch wie bekomme ich den letzten Wert &quot;ende&quot; gespeichert?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147418</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Sun, 01 Oct 2006 14:29:49 GMT</pubDate></item><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 14:58:06 GMT]]></title><description><![CDATA[<p>das heißt dieser code wird nur ausgeführt wenn du ein | findest</p>
<pre><code class="language-cpp">if(str.find(&quot;|&quot;) != string::npos)
</code></pre>
<p>nun ist aber &quot;ende&quot; nach dem letzen | und nach &quot;ende&quot; kommt kein | mehr, also entweder passt du den string an(schlechtere lösung) oder du gehst erstmal davon aus, das nach einem | prinzipiell immer noch ein token kommt. In diesem Fall wäre das dann &quot; ende&quot;. um an das letzte token zu kommen müsste du also einfach noch den rest abarbeiten</p>
<p>also sowas</p>
<pre><code class="language-cpp">if(str.find(&quot;|&quot;) != string::npos)
   //wie vorher
else{
   //hier dann den besonderen fall
}
</code></pre>
<p>edit: du kannst auch mal hier gucken <a href="http://www.cppreference.com/cppstring/index.html" rel="nofollow">http://www.cppreference.com/cppstring/index.html</a><br />
string kennt zb. sowas wie find(char) damit kannst du dir die for schleife sparen..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147427</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147427</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Sun, 01 Oct 2006 14:58:06 GMT</pubDate></item><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 14:49:06 GMT]]></title><description><![CDATA[<p>Folgender Code klappt recht gut:</p>
<pre><code class="language-cpp">std::vector&lt;std::string&gt; split(std::string const&amp; str, std::string const&amp; sep)
{
    using std::string;

    std::vector&lt;string&gt; ret;
    string::size_type last = 0;
    string::size_type i;

    while ((i = str.find(sep, last)) != string::npos) {
        ret.push_back(str.substr(last, i - last));
        last = i + 1;
    }

    ret.push_back(str.substr(last));
    return ret;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1147431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147431</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 01 Oct 2006 14:49:06 GMT</pubDate></item><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 15:03:25 GMT]]></title><description><![CDATA[<p>vielen dank mit der Funktion klappts prima <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>
<pre><code class="language-cpp">vector&lt;string&gt; token = split(str,&quot;|&quot;);

					for(int i = 0; i &lt; token.size(); i++)
					{	
						cout &lt;&lt; token[i] &lt;&lt; endl;		
                    }
</code></pre>
<p>Ab dem 2. Token ist an der ersten Stelle ein Leerzeichen, kann man dies in der Funktion beseitigen`?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147439</guid><dc:creator><![CDATA[kernel64]]></dc:creator><pubDate>Sun, 01 Oct 2006 15:03:25 GMT</pubDate></item><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 15:21:04 GMT]]></title><description><![CDATA[<p>kernel64 schrieb:</p>
<blockquote>
<p>Ab dem 2. Token ist an der ersten Stelle ein Leerzeichen, kann man dies in der Funktion beseitigen`?</p>
</blockquote>
<p>Na ja, Leerzeichen kann man separat wegstreichen:</p>
<pre><code class="language-cpp">std::string trim(std::string const&amp; str)
{
    using std::string;

    string ret = str;
    string::size_type i;

    if ((i = ret.find_first_not_of(&quot; \t&quot;)) != string::npos)
        ret = ret.substr(i);
    else return &quot;&quot;;

    if ((i = ret.find_last_not_of(&quot; \t&quot;)) != string::npos)
        ret = ret.substr(0, i + 1);

    return ret;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1147455</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147455</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 01 Oct 2006 15:21:04 GMT</pubDate></item><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 15:26:27 GMT]]></title><description><![CDATA[<p>dein code geht aber davon aus, das kein leerzeichen innerhalb des strings enthalten sein soll</p>
<p>also sowas &quot;das ist ein token&quot; würde dein code zu &quot;dasist eintoken&quot; machen<br />
ob das nun gewünscht ist oder nicht hängt natürlich von der aufgabenstellung ab.</p>
<p>da ist nun der threadersteller gefragt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147460</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147460</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Sun, 01 Oct 2006 15:26:27 GMT</pubDate></item><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 15:31:46 GMT]]></title><description><![CDATA[<p>ConfusedGuy schrieb:</p>
<blockquote>
<p>dein code geht aber davon aus, das kein leerzeichen innerhalb des strings enthalten sein soll</p>
</blockquote>
<p>Wieso?</p>
<pre><code class="language-cpp">cout &lt;&lt; trim(&quot;das ist ein token&quot;) &lt;&lt; endl; // = &quot;das ist ein token&quot;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1147461</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147461</guid><dc:creator><![CDATA[Konrad Rudolph]]></dc:creator><pubDate>Sun, 01 Oct 2006 15:31:46 GMT</pubDate></item><item><title><![CDATA[Reply to String Spaltung.. on Sun, 01 Oct 2006 15:36:51 GMT]]></title><description><![CDATA[<p>args, hab kurzerhand mal</p>
<pre><code class="language-cpp">ret.find_last_not_of und ret.find_first_not_of
</code></pre>
<p>in</p>
<pre><code class="language-cpp">ret.find_last_of und ret.find_first_of
</code></pre>
<p>umgewandelt beim denken</p>
<p>sorry, hast recht <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1147464</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1147464</guid><dc:creator><![CDATA[ConfusedGuy]]></dc:creator><pubDate>Sun, 01 Oct 2006 15:36:51 GMT</pubDate></item></channel></rss>