<?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[Strings verarbeiten]]></title><description><![CDATA[<p>hi,</p>
<p>also erstmal ein beispiel zur verständnis:</p>
<pre><code>string = &quot;das.ist.ein.test&quot;

func(string,&quot;.&quot;,0) = 4              // wieviele wörter durch punkte getrennt werden
func(string,&quot;.&quot;,1) = das            // erstes wort was mit den punkt getrennt wird
func(string,&quot;.&quot;,1-3) = das.ist.ein  // gibt die ersten 3 wörter aus die getrennt sind mit punkten
</code></pre>
<p>also meine frage ist, gibt es so eine funktion oder eine ähnliche?<br />
und wenn nicht, aus welchen funktionen könnte ich mir sie zusammen basteln?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/189354/strings-verarbeiten</link><generator>RSS for Node</generator><lastBuildDate>Fri, 25 Sep 2026 07:51:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/189354.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 11 Aug 2007 18:53:05 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Strings verarbeiten on Sat, 11 Aug 2007 18:53:05 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>also erstmal ein beispiel zur verständnis:</p>
<pre><code>string = &quot;das.ist.ein.test&quot;

func(string,&quot;.&quot;,0) = 4              // wieviele wörter durch punkte getrennt werden
func(string,&quot;.&quot;,1) = das            // erstes wort was mit den punkt getrennt wird
func(string,&quot;.&quot;,1-3) = das.ist.ein  // gibt die ersten 3 wörter aus die getrennt sind mit punkten
</code></pre>
<p>also meine frage ist, gibt es so eine funktion oder eine ähnliche?<br />
und wenn nicht, aus welchen funktionen könnte ich mir sie zusammen basteln?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1342892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1342892</guid><dc:creator><![CDATA[AZ]]></dc:creator><pubDate>Sat, 11 Aug 2007 18:53:05 GMT</pubDate></item><item><title><![CDATA[Reply to Strings verarbeiten on Sat, 11 Aug 2007 19:26:52 GMT]]></title><description><![CDATA[<p>hmm gibt es nicht ....</p>
<p><strong>func(&quot;.&quot;, &quot;Das.ist.ein.Test!&quot;) = 4</strong></p>
<pre><code class="language-cpp">std::string test(&quot;Das.ist.ein.Test&quot;);
std::size_t count = std::count_if(test.begin(), test.end(), std::bind2nd(std::equal_to&lt;char&gt;(), '.'));
if (test.at(test.length() - 1) == '.')--count;
if (test.at(0) == '.')--count;
</code></pre>
<p>könnte aber gehen ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1342912</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1342912</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 11 Aug 2007 19:26:52 GMT</pubDate></item><item><title><![CDATA[Reply to Strings verarbeiten on Sat, 11 Aug 2007 19:29:03 GMT]]></title><description><![CDATA[<p><strong>func(string,&quot;.&quot;,1) = das</strong></p>
<pre><code class="language-cpp">std::string test(&quot;Das.ist.ein.Test&quot;);
std::string result = test.substr(test.find_first_not_of('.'), test.find_first_of('.'));
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1342914</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1342914</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 11 Aug 2007 19:29:03 GMT</pubDate></item><item><title><![CDATA[Reply to Strings verarbeiten on Sat, 11 Aug 2007 19:47:39 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">std::size_t count_words(const std::string&amp; string, char iterator = ' ')
{
    std::size_t count = std::count_if(string.begin(), string.end(), std::bind2nd(std::equal_to&lt;char&gt;(), iterator));
    if (string.at(string.length() - 1) == iterator) --count;
    if (string.at(0) == iterator) --count;
    return --count;
}
</code></pre>
<p>Könntest jetzt noch hingehen und eine Kopie von string anlegen. Daraus dann alle direkt auf einander folgenden '.' rauslöschen, so das nur einer davon übrig bleibt ...</p>
<pre><code class="language-cpp">std::string&amp; split_word(const std::string&amp; string, std::size_t start = 0, std::size_t end = 1, char iterator = ' ')
{
    std::size_t tmp_beg = 0;
    for (std::size_t pos = 0; pos &lt; beg; ++pos)
        tmp_beg = string.find_first_of(iterator, tmp + 1);
    std::size_t tmp_end = 0;
    for (std::size_t pos = 0; pos &lt; end; ++pos)
        tmp_end = string.find_first_of(iterator, tmp + 1);

    return string.substr(tmp_beg, tmp_end - tmp_beg);
}
</code></pre>
<p>Das kann dann beides <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="🙂"
    /> (die letzten beiden Fragen)</p>
<pre><code class="language-cpp">std::string test(&quot;Das.ist.ein.Test!&quot;);
std::cout &lt;&lt; split_word(test, 0, 1, '.') &lt;&lt; std::endl;
std::cout &lt;&lt; split_word(test, 0, 3, '.') &lt;&lt; std::endl;
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1342926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1342926</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Sat, 11 Aug 2007 19:47:39 GMT</pubDate></item></channel></rss>