<?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[Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?!]]></title><description><![CDATA[<p>Guten Tag,<br />
ich habe ein Code mit einer Klasse in Visual C++ Express geschrieben in der ich mehrere Eingaben in ein Feld eines Arrays speichern kann, das ganze Programm läuft gut jedoch habe ich ein Problem bei der Ausgabe und hoffe mir kann jemand helfen:</p>
<pre><code>void Telefonbuch::neueTeilnehmer(string name, string vorname, string telefonnr)
{
	telefonnr = name + ',' + vorname + ':' + telefonnr;	//Addieren und Zusammenführen der 3 Strings auf 1 Feld
	this-&gt;Teilnehmer[this-&gt;anzahl] = telefonnr;		//Ablegen des Strings auf ein Feld im Array
	this-&gt;anzahl++;		//Hochzählen der Einträge
}

void Telefonbuch::ausgeben()
{
	if (this-&gt;anzahl != 0)	//Abfrage auf vorhandene Eingaben
	{
		cout.width(45);		//width bewirkt das eingefügte Daten in einer Breite von 40 Zeichen ausgegeben werden
		cout.setf(ios::left);	//Ausrichtung der Daten ist linksbündig
		cout &lt;&lt; &quot;\n\tTELEFONBUCH&quot; &lt;&lt; &quot;\nNr.\t&quot; &lt;&lt; setw(12) &lt;&lt; &quot;Name&quot; &lt;&lt; setw(13) &lt;&lt; &quot;Vorname&quot; &lt;&lt; setw(16) &lt;&lt; &quot;Telefonnummer\n&quot; &lt;&lt; endl;
		cout.unsetf(ios::left);	//Aufhebung der Ausrichtung
		for (int a=0; a &lt; this-&gt;anzahl; a++)
		{
			//size_type ist ein Zahlentyp, der groß genug für die maximale Anzahl an Elementen ist. 
			string::size_type position1 = this-&gt;Teilnehmer[a].find(',');	//String wird nach Zeichen &quot;,&quot; durchsucht(find = string von vorne durchsuchen)
			cout &lt;&lt; setw(2) &lt;&lt; setfill('0') &lt;&lt; a+1 &lt;&lt; &quot;.\t&quot; &lt;&lt; flush;
			cout &lt;&lt; setw(12) &lt;&lt; setfill(' ') &lt;&lt; setiosflags(ios::left) &lt;&lt; this-&gt;Teilnehmer[a].substr(0, position1) &lt;&lt; flush;
			string::size_type position2 = this-&gt;Teilnehmer[a].find(':');	//String wird nach Zeichen &quot;:&quot; durchsucht(find = string von hinten durchsuchen)
			cout &lt;&lt; setw(13) &lt;&lt; this-&gt;Teilnehmer[a].substr(position1+1, position2) &lt;&lt; flush;
			cout &lt;&lt; setw(16) &lt;&lt; this-&gt;Teilnehmer[a].substr(position2+1) &lt;&lt; resetiosflags(ios::left) &lt;&lt; endl;
		}
	}
}
</code></pre>
<p>Das Problem bei diesem Code liegt darin das die Ausgabe mir das anzeigt:</p>
<pre><code>TELEFONBUCH
Nr.    Name         Vorname  Telefonnummer
01.    Mustermann   Max:123456123456
</code></pre>
<p>Wieso macht der die Telnr doppelt anstatt wie in der Methode beschrieben die durch die Trennzeichen zu trennen?<br />
Was könnte ich machen um es zu korrigieren bzw. was mache ich falsch?</p>
<p>Ich hoffe mir kann einer helfen, und danke schonmal im Vorfeld.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/316189/ein-string-in-mehrere-teile-zerlegen-doch-es-funktioniert-nicht-richtig</link><generator>RSS for Node</generator><lastBuildDate>Thu, 30 Jul 2026 07:14:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/316189.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 24 Apr 2013 15:03:12 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Wed, 24 Apr 2013 15:03:12 GMT]]></title><description><![CDATA[<p>Guten Tag,<br />
ich habe ein Code mit einer Klasse in Visual C++ Express geschrieben in der ich mehrere Eingaben in ein Feld eines Arrays speichern kann, das ganze Programm läuft gut jedoch habe ich ein Problem bei der Ausgabe und hoffe mir kann jemand helfen:</p>
<pre><code>void Telefonbuch::neueTeilnehmer(string name, string vorname, string telefonnr)
{
	telefonnr = name + ',' + vorname + ':' + telefonnr;	//Addieren und Zusammenführen der 3 Strings auf 1 Feld
	this-&gt;Teilnehmer[this-&gt;anzahl] = telefonnr;		//Ablegen des Strings auf ein Feld im Array
	this-&gt;anzahl++;		//Hochzählen der Einträge
}

void Telefonbuch::ausgeben()
{
	if (this-&gt;anzahl != 0)	//Abfrage auf vorhandene Eingaben
	{
		cout.width(45);		//width bewirkt das eingefügte Daten in einer Breite von 40 Zeichen ausgegeben werden
		cout.setf(ios::left);	//Ausrichtung der Daten ist linksbündig
		cout &lt;&lt; &quot;\n\tTELEFONBUCH&quot; &lt;&lt; &quot;\nNr.\t&quot; &lt;&lt; setw(12) &lt;&lt; &quot;Name&quot; &lt;&lt; setw(13) &lt;&lt; &quot;Vorname&quot; &lt;&lt; setw(16) &lt;&lt; &quot;Telefonnummer\n&quot; &lt;&lt; endl;
		cout.unsetf(ios::left);	//Aufhebung der Ausrichtung
		for (int a=0; a &lt; this-&gt;anzahl; a++)
		{
			//size_type ist ein Zahlentyp, der groß genug für die maximale Anzahl an Elementen ist. 
			string::size_type position1 = this-&gt;Teilnehmer[a].find(',');	//String wird nach Zeichen &quot;,&quot; durchsucht(find = string von vorne durchsuchen)
			cout &lt;&lt; setw(2) &lt;&lt; setfill('0') &lt;&lt; a+1 &lt;&lt; &quot;.\t&quot; &lt;&lt; flush;
			cout &lt;&lt; setw(12) &lt;&lt; setfill(' ') &lt;&lt; setiosflags(ios::left) &lt;&lt; this-&gt;Teilnehmer[a].substr(0, position1) &lt;&lt; flush;
			string::size_type position2 = this-&gt;Teilnehmer[a].find(':');	//String wird nach Zeichen &quot;:&quot; durchsucht(find = string von hinten durchsuchen)
			cout &lt;&lt; setw(13) &lt;&lt; this-&gt;Teilnehmer[a].substr(position1+1, position2) &lt;&lt; flush;
			cout &lt;&lt; setw(16) &lt;&lt; this-&gt;Teilnehmer[a].substr(position2+1) &lt;&lt; resetiosflags(ios::left) &lt;&lt; endl;
		}
	}
}
</code></pre>
<p>Das Problem bei diesem Code liegt darin das die Ausgabe mir das anzeigt:</p>
<pre><code>TELEFONBUCH
Nr.    Name         Vorname  Telefonnummer
01.    Mustermann   Max:123456123456
</code></pre>
<p>Wieso macht der die Telnr doppelt anstatt wie in der Methode beschrieben die durch die Trennzeichen zu trennen?<br />
Was könnte ich machen um es zu korrigieren bzw. was mache ich falsch?</p>
<p>Ich hoffe mir kann einer helfen, und danke schonmal im Vorfeld.</p>
<p>Grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2318124</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2318124</guid><dc:creator><![CDATA[Rickytop]]></dc:creator><pubDate>Wed, 24 Apr 2013 15:03:12 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Wed, 24 Apr 2013 15:09:27 GMT]]></title><description><![CDATA[<p>Wieso missbrauchst du <code>std::string</code> um mehrere Werte zu speichern? Schreib doch einfach eine eigene Klasse dafür.</p>
<pre><code class="language-cpp">struct contact_data {
  std::string name, vorname, telefonnr;
};
std::vector&lt;contact_data&gt; teilnehmer;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2318127</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2318127</guid><dc:creator><![CDATA[strisa]]></dc:creator><pubDate>Wed, 24 Apr 2013 15:09:27 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Wed, 24 Apr 2013 15:10:08 GMT]]></title><description><![CDATA[<p>He, das wollte ich gerade sagen! <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/2318128</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2318128</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Wed, 24 Apr 2013 15:10:08 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Wed, 24 Apr 2013 16:32:28 GMT]]></title><description><![CDATA[<p>Hallo Rickytop,</p>
<p>dein Aufruf</p>
<pre><code class="language-cpp">substr(position1+1, position2)
</code></pre>
<p>erzeugt die entsprechende Ausgabe, denn der 2. Parameter gibt die Länge an (nicht den absoluten Index).<br />
Probiere mal</p>
<pre><code class="language-cpp">substr(position1+1, position2-position)
</code></pre>
<p>Aber die Bemerkungen bzgl. eigener Struktur/Klasse solltest du trotzdem umsetzen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2318166</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2318166</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Wed, 24 Apr 2013 16:32:28 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Sun, 28 Apr 2013 08:18:55 GMT]]></title><description><![CDATA[<p>Danke Th69, das war der Fehler. Super Tipp!</p>
<p>Das Problem bei meinem Programm ist dieser, das ich keine Eigene Klasse für die Daten benutzen darf.Ich sollte eine Klasse erstellen in dieser die genannten Funktionen und ein Array Teilnehmer existiert worin die Daten gespeichert werden, darum nutze ich string um mehrere Sachen darin zu speichern <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/2319227</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319227</guid><dc:creator><![CDATA[Rickytop]]></dc:creator><pubDate>Sun, 28 Apr 2013 08:18:55 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Sun, 28 Apr 2013 08:52:11 GMT]]></title><description><![CDATA[<p>Dann erstellst du in der Klasse halt eine weiter Struktur...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319233</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 28 Apr 2013 08:52:11 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Sun, 28 Apr 2013 12:37:18 GMT]]></title><description><![CDATA[<p>Rickytop schrieb:</p>
<blockquote>
<p>Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?!</p>
</blockquote>
<p>Richtig wäre:<br />
Ein<strong>en</strong> String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?!<br />
Wen oder was in mehrere Teile zerlegen? Ein<strong>en</strong> String.<br />
<a href="http://de.wikipedia.org/wiki/Akkusativ" rel="nofollow">http://de.wikipedia.org/wiki/Akkusativ</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319302</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319302</guid><dc:creator><![CDATA[deutschlehr0r]]></dc:creator><pubDate>Sun, 28 Apr 2013 12:37:18 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Sun, 28 Apr 2013 19:19:57 GMT]]></title><description><![CDATA[<p>deutschlehr0r schrieb:</p>
<blockquote>
<p>Rickytop schrieb:</p>
<blockquote>
<p>Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?!</p>
</blockquote>
<p>Richtig wäre:<br />
Ein<strong>en</strong> String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?!<br />
Wen oder was in mehrere Teile zerlegen? Ein<strong>en</strong> String.<br />
<a href="http://de.wikipedia.org/wiki/Akkusativ" rel="nofollow">http://de.wikipedia.org/wiki/Akkusativ</a></p>
</blockquote>
<p>KLUGSCHEISSER!</p>
<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/29873">@Nathan</a>:<br />
Wozu sollte ich das umschreiben, wenn das Programm einwandfrei läuft?<br />
Sehe keinen Vorteil darin es zu erweitern?!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319478</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319478</guid><dc:creator><![CDATA[Rickytop]]></dc:creator><pubDate>Sun, 28 Apr 2013 19:19:57 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Sun, 28 Apr 2013 19:27:41 GMT]]></title><description><![CDATA[<p>Rickytop schrieb:</p>
<blockquote>
<p>Wozu sollte ich das umschreiben, wenn das Programm einwandfrei läuft?<br />
Sehe keinen Vorteil darin es zu erweitern?!</p>
</blockquote>
<p>Am Anfang deines Weges ist Perfektionismus dein Freund.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319481</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319481</guid><dc:creator><![CDATA[meister]]></dc:creator><pubDate>Sun, 28 Apr 2013 19:27:41 GMT</pubDate></item><item><title><![CDATA[Reply to Ein String in mehrere Teile zerlegen, doch es funktioniert nicht richtig?! on Thu, 12 Jun 2014 02:15:07 GMT]]></title><description><![CDATA[<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2319494</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2319494</guid><dc:creator><![CDATA[Swordfish]]></dc:creator><pubDate>Thu, 12 Jun 2014 02:15:07 GMT</pubDate></item></channel></rss>