<?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[Einzelnes Zeichen aus String löschen (das erste)]]></title><description><![CDATA[<p>Hallo allerseits,<br />
ich versuche gerade eine Funktion zu programmieren, welche einen String in seine einzelnen Worte aufteilen sollte(!), ich schaffe es schon das erste Wort abzutrennen, mein Problem bleibt allerdings, dass das Leerzeichen stehenbleibt, und ich deswegen keine weiteren Worte auslesen kann.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;//Includes teilweise für andere Programmteile benutzt
#include &lt;windows.h&gt;//also nicht wundern das hier jetzt unbenutzte Include's stehen
#include &lt;conio.h&gt;

using namespace std;

void stringtrenner(string part)
{
int x=0, sl=0, anzahl=0;
string parts[20]; //vorerst auf 20 gesetzt, längere Sätze werden ersteinmal nicht kommen
sl = (part.length()+1); // Wie lang ist der String
for(int i=0; i&lt;sl; i++)// Unausgereift: Wie viele Leerzeichen sind vorhanden
    {
    if(part.find(&quot; &quot;)) // Unausgereift: Wie viele Leerzeichen sind vorhanden
        {
         anzahl++;
        }
    }
for(int i=0; i&lt;anzahl; i++)
    {
    size_t strpos = part.find(&quot; &quot;);//findet die Position vom Leerzeichen
    parts[i]=part.substr(0, strpos);// Trennt das Wort bis zum Leerzeichen ab
    cout &lt;&lt; parts[i] &lt;&lt; endl ;      //gibt das gespeicherte Wort aus
    part.erase(0, strpos);          //löscht das gespeicherte Wort aus dem String
    i++;
    x=i ;
    }
    cout &lt;&lt; part ;//Das letzte Wort?
}
int main()
{
stringtrenner(&quot;Test St ring&quot;); //der String der in seine Einzelteile zerlegt werden soll
}
</code></pre>
<p>Für Anregungen und Hilfe wäre ich dankbar<br />
lg - koen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/309177/einzelnes-zeichen-aus-string-löschen-das-erste</link><generator>RSS for Node</generator><lastBuildDate>Wed, 05 Aug 2026 12:09:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/309177.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 16 Oct 2012 10:02:51 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Einzelnes Zeichen aus String löschen (das erste) on Tue, 16 Oct 2012 10:02:51 GMT]]></title><description><![CDATA[<p>Hallo allerseits,<br />
ich versuche gerade eine Funktion zu programmieren, welche einen String in seine einzelnen Worte aufteilen sollte(!), ich schaffe es schon das erste Wort abzutrennen, mein Problem bleibt allerdings, dass das Leerzeichen stehenbleibt, und ich deswegen keine weiteren Worte auslesen kann.</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;//Includes teilweise für andere Programmteile benutzt
#include &lt;windows.h&gt;//also nicht wundern das hier jetzt unbenutzte Include's stehen
#include &lt;conio.h&gt;

using namespace std;

void stringtrenner(string part)
{
int x=0, sl=0, anzahl=0;
string parts[20]; //vorerst auf 20 gesetzt, längere Sätze werden ersteinmal nicht kommen
sl = (part.length()+1); // Wie lang ist der String
for(int i=0; i&lt;sl; i++)// Unausgereift: Wie viele Leerzeichen sind vorhanden
    {
    if(part.find(&quot; &quot;)) // Unausgereift: Wie viele Leerzeichen sind vorhanden
        {
         anzahl++;
        }
    }
for(int i=0; i&lt;anzahl; i++)
    {
    size_t strpos = part.find(&quot; &quot;);//findet die Position vom Leerzeichen
    parts[i]=part.substr(0, strpos);// Trennt das Wort bis zum Leerzeichen ab
    cout &lt;&lt; parts[i] &lt;&lt; endl ;      //gibt das gespeicherte Wort aus
    part.erase(0, strpos);          //löscht das gespeicherte Wort aus dem String
    i++;
    x=i ;
    }
    cout &lt;&lt; part ;//Das letzte Wort?
}
int main()
{
stringtrenner(&quot;Test St ring&quot;); //der String der in seine Einzelteile zerlegt werden soll
}
</code></pre>
<p>Für Anregungen und Hilfe wäre ich dankbar<br />
lg - koen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2260922</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260922</guid><dc:creator><![CDATA[Koen2]]></dc:creator><pubDate>Tue, 16 Oct 2012 10:02:51 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen aus String löschen (das erste) on Tue, 16 Oct 2012 10:34:25 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;sstream&gt;
#include &lt;iostream&gt;

std::vector&lt; std::string &gt; stringsplitter( char const *str )
{
	std::vector&lt; std::string &gt; result;
	std::stringstream ss( str );
	std::string word;

	while( ss &gt;&gt; word ) result.push_back( word );

	return result;

}

int main()
{
	std::vector&lt; std::string &gt; words = stringsplitter( &quot;Franz jagt im komplett verwahrlosten Taxi quer durch Bayern&quot; );

	for( auto i = words.begin(); i != words.end(); ++i ) std::cout &lt;&lt; *i &lt;&lt; '\n';
}
</code></pre>
<p>// edit: Plan B ohne <code>stringstream</code> :</p>
<pre><code class="language-cpp">#include &lt;cctype&gt;
#include &lt;vector&gt;
#include &lt;string&gt;
#include &lt;iostream&gt;

std::vector&lt; std::string &gt; stringsplitter( std::string const &amp;str )
{
	std::vector&lt; std::string &gt; result;
	std::string word;

	for( auto i = str.begin(); i != str.end(); ++i ) {

		if( !std::isspace( *i ) ) {

			word += *i;

		} else if( !word.empty() ) {

			result.push_back( word );
			word = &quot;&quot;;
		}
	}

	if( !word.empty() )
		result.push_back( word );

	return result;
}

int main()
{
	std::vector&lt; std::string &gt; words = stringsplitter( &quot;Franz jagt im komplett verwahrlosten Taxi quer durch Bayern&quot; );
	for( auto i = words.begin(); i != words.end(); ++i ) std::cout &lt;&lt; *i &lt;&lt; '\n';
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2260926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260926</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Tue, 16 Oct 2012 10:34:25 GMT</pubDate></item><item><title><![CDATA[Reply to Einzelnes Zeichen aus String löschen (das erste) on Tue, 16 Oct 2012 11:44:03 GMT]]></title><description><![CDATA[<p>alle Änderung sind mit ## markiert</p>
<pre><code class="language-cpp">#include &lt;fstream&gt;
#include &lt;iostream&gt;
#include &lt;string&gt;//Includes teilweise für andere Programmteile benutzt
#include &lt;windows.h&gt;//also nicht wundern das hier jetzt unbenutzte Include's stehen
#include &lt;conio.h&gt;
#include &lt;algorithm&gt; // std::count

using namespace std;

void stringtrenner(string part)
{
    int x=0, sl=0, anzahl=0;
    string parts[20]; //vorerst auf 20 gesetzt, längere Sätze werden ersteinmal nicht kommen
    sl = (part.length()+1); // Wie lang ist der String

    // --   ## 
    // entweder:
    for( int i=0; i&lt;part.length(); ++i )
        if( part[i] == ' ' )
            ++anzahl;
    // oder:
    anzahl = std::count( part.begin(), part.end(), ' ' );
    //for(int i=0; i&lt;sl; i++)// Unausgereift: Wie viele Leerzeichen sind vorhanden
    //{
    //    if(part.find(&quot; &quot;)) // Unausgereift: Wie viele Leerzeichen sind vorhanden
    //    {
    //        anzahl++;
    //    }
    //}

    for(int i=0; i&lt;anzahl; i++)
    {
        size_t strpos = part.find(&quot; &quot;);//findet die Position vom Leerzeichen
        parts[i]=part.substr(0, strpos);// Trennt das Wort bis zum Leerzeichen ab
        cout &lt;&lt; parts[i] &lt;&lt; endl ;      //gibt das gespeicherte Wort aus
        part.erase(0, strpos+1);          //löscht das gespeicherte Wort UND DAS SPACE-ZEICHEN aus dem String ##
        // i++; ##
        // x=i ; ##
    }
    cout &lt;&lt; part &lt;&lt; endl ;//Das letzte Wort? ## endl vergessen
}
int main()
{
    stringtrenner(&quot;Test St ring&quot;); //der String der in seine Einzelteile zerlegt werden soll
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2260947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2260947</guid><dc:creator><![CDATA[Der-Korregator]]></dc:creator><pubDate>Tue, 16 Oct 2012 11:44:03 GMT</pubDate></item></channel></rss>