<?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] Leerzeichen abschneiden]]></title><description><![CDATA[<p>Hi,</p>
<p>da die Foren-Suche nichts ergeben hat, diese alltäglich Frage:<br />
Wie schneide ich bei einem String die Leerzeichen vorn und hinten ab?</p>
<p>Bisher mache ich das folgendermaßen:</p>
<pre><code class="language-cpp">string tmp;
getline(file, tmp);

string::iterator it = tmp.begin();
string::size_type count = 0;
while (it!=tmp.end() &amp;&amp; isspace(*it))
{
	++it;
	++count;
}
tmp.erase(0, count);

string::reverse_iterator rev_it = tmp.rbegin();
count = 0;
while (rev_it!=tmp.rend() &amp;&amp; isspace(*rev_it))
{
	++rev_it;
	++count;
}
tmp.erase(tmp.size()-count, string::npos);
</code></pre>
<p>Geht das besser?</p>
<p>Grüße,<br />
don_basto.</p>
<p>//EDIT: Kode debuggt <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/topic/158152/string-leerzeichen-abschneiden</link><generator>RSS for Node</generator><lastBuildDate>Wed, 09 Sep 2026 15:52:18 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/158152.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 02 Sep 2006 07:16:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to [string] Leerzeichen abschneiden on Sat, 02 Sep 2006 07:27:36 GMT]]></title><description><![CDATA[<p>Hi,</p>
<p>da die Foren-Suche nichts ergeben hat, diese alltäglich Frage:<br />
Wie schneide ich bei einem String die Leerzeichen vorn und hinten ab?</p>
<p>Bisher mache ich das folgendermaßen:</p>
<pre><code class="language-cpp">string tmp;
getline(file, tmp);

string::iterator it = tmp.begin();
string::size_type count = 0;
while (it!=tmp.end() &amp;&amp; isspace(*it))
{
	++it;
	++count;
}
tmp.erase(0, count);

string::reverse_iterator rev_it = tmp.rbegin();
count = 0;
while (rev_it!=tmp.rend() &amp;&amp; isspace(*rev_it))
{
	++rev_it;
	++count;
}
tmp.erase(tmp.size()-count, string::npos);
</code></pre>
<p>Geht das besser?</p>
<p>Grüße,<br />
don_basto.</p>
<p>//EDIT: Kode debuggt <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/1129470</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129470</guid><dc:creator><![CDATA[don_basto]]></dc:creator><pubDate>Sat, 02 Sep 2006 07:27:36 GMT</pubDate></item><item><title><![CDATA[Reply to [string] Leerzeichen abschneiden on Sat, 02 Sep 2006 08:11:55 GMT]]></title><description><![CDATA[<p>Ich würd aus dem ganzen noch eine Templatefunktion machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1129481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129481</guid><dc:creator><![CDATA[Thomas ** 0]]></dc:creator><pubDate>Sat, 02 Sep 2006 08:11:55 GMT</pubDate></item><item><title><![CDATA[Reply to [string] Leerzeichen abschneiden on Sat, 02 Sep 2006 15:52:07 GMT]]></title><description><![CDATA[<p><a href="http://www.boost.org/doc/html/string_algo.html" rel="nofollow">boost::algorithm</a> (<a href="http://www.boost.org/doc/html/string_algo/usage.html#id2742817" rel="nofollow">trim</a>)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1129550</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129550</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Sat, 02 Sep 2006 15:52:07 GMT</pubDate></item><item><title><![CDATA[Reply to [string] Leerzeichen abschneiden on Sat, 02 Sep 2006 12:23:09 GMT]]></title><description><![CDATA[<p>Hallo,<br />
die boost-Variante ist sicher die sinnvollste, wenn man sowieso schon boost verwenden.</p>
<p>Händisch kann man es z.B. auch so machen:</p>
<pre><code class="language-cpp">void trimA(std::string&amp; s) {
	typedef int (*Sig)(int);
	s.erase(s.begin(), std::find_if(s.begin(), s.end(), not1(ptr_fun(static_cast&lt;Sig&gt;(isspace)))));
	s.erase(std::find_if(s.rbegin(), s.rend(), not1(ptr_fun(static_cast&lt;Sig&gt;(isspace)))).base(), s.end());
}
</code></pre>
<p>Das ist aber unter Umständen nicht ganz korrekt (siehe char vs. unsigned cahr vs. int Problematik).<br />
Besser also:</p>
<pre><code class="language-cpp">struct IsSpace : std::unary_function&lt;char, bool&gt; {
	bool operator()(char c) const {
		return isspace(static_cast&lt;unsigned char&gt;(c)) != 0;
	}
};

void trim(std::string&amp; s) {
	s.erase(s.begin(), std::find_if(s.begin(), s.end(), not1(IsSpace())));
	s.erase(std::find_if(s.rbegin(), s.rend(), not1(IsSpace())).base(), s.end());
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1129608</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129608</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Sat, 02 Sep 2006 12:23:09 GMT</pubDate></item><item><title><![CDATA[Reply to [string] Leerzeichen abschneiden on Sat, 02 Sep 2006 13:41:32 GMT]]></title><description><![CDATA[<p>mit boost::algorithm::trim</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1129654</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1129654</guid><dc:creator><![CDATA[lolz]]></dc:creator><pubDate>Sat, 02 Sep 2006 13:41:32 GMT</pubDate></item><item><title><![CDATA[Reply to [string] Leerzeichen abschneiden on Sun, 03 Sep 2006 10:41:40 GMT]]></title><description><![CDATA[<p>und was ist mit tabulatoren?</p>
<p>also folgender string:</p>
<p>&quot;\t \t hallo welt\t \t \t &quot;</p>
<p>würde das damit etwa klappen? Also die trim funktion aus PHP frisst alles <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130101</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130101</guid><dc:creator><![CDATA[+++++++++++]]></dc:creator><pubDate>Sun, 03 Sep 2006 10:41:40 GMT</pubDate></item><item><title><![CDATA[Reply to [string] Leerzeichen abschneiden on Sun, 03 Sep 2006 11:07:16 GMT]]></title><description><![CDATA[<p>+++++++++++ schrieb:</p>
<blockquote>
<p>und was ist mit tabulatoren?</p>
<p>also folgender string:</p>
<p>&quot;\t \t hallo welt\t \t \t &quot;</p>
<p>würde das damit etwa klappen? Also die trim funktion aus PHP frisst alles <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
</blockquote>
<p>Wie wär's wenn du's einfach ausprobierst? Klar, ist ein völlig unintuitives Konzept, erspart dir aber wenigstens den Blick in die Doku....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1130108</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1130108</guid><dc:creator><![CDATA[finix]]></dc:creator><pubDate>Sun, 03 Sep 2006 11:07:16 GMT</pubDate></item></channel></rss>