<?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[Liste erzeugen...]]></title><description><![CDATA[<p>Hallo,<br />
ich habe mein Problem STARK vereinfacht und es ist daher auch sehr fehleranfällig, aber es geht ums Prinzip.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cstdio&gt;

int main()
{
	char **Args = NULL;

	std::string Test, Temp;
	std::getline(std::cin, Test);
	Test += ' ';

	for (int i = 0; i &lt; Test.length(); i++)
	{
		if (Test[i] != ' ')
		{
			Temp += Test[i];
		}
		if (Test[i] == ' ')
		{
			std::cout &lt;&lt; Temp &lt;&lt; std::endl;
			/*
				An dieser Stelle muss eine Liste erstellt werden!
				Ich habe dazu schon die Variabel Args angelegt, aber ich weiß jetzt
				nicht wie ich diese fülle...
			*/
			Temp = &quot;&quot;;
		}
	}

	delete[] Args;
	return 0;
}
</code></pre>
<p>Ich muss das unbedingt ohne STL usw... machen, denn die Schnitstelle will ich in C halten! Und es geht in diesem Beispiel NUR darum die Liste zu füllen!</p>
<p>Vielen Dank,<br />
Hilfeeee</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/187848/liste-erzeugen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 24 Sep 2026 21:59:51 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/187848.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Jul 2007 16:54:49 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 16:54:49 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe mein Problem STARK vereinfacht und es ist daher auch sehr fehleranfällig, aber es geht ums Prinzip.</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cstdio&gt;

int main()
{
	char **Args = NULL;

	std::string Test, Temp;
	std::getline(std::cin, Test);
	Test += ' ';

	for (int i = 0; i &lt; Test.length(); i++)
	{
		if (Test[i] != ' ')
		{
			Temp += Test[i];
		}
		if (Test[i] == ' ')
		{
			std::cout &lt;&lt; Temp &lt;&lt; std::endl;
			/*
				An dieser Stelle muss eine Liste erstellt werden!
				Ich habe dazu schon die Variabel Args angelegt, aber ich weiß jetzt
				nicht wie ich diese fülle...
			*/
			Temp = &quot;&quot;;
		}
	}

	delete[] Args;
	return 0;
}
</code></pre>
<p>Ich muss das unbedingt ohne STL usw... machen, denn die Schnitstelle will ich in C halten! Und es geht in diesem Beispiel NUR darum die Liste zu füllen!</p>
<p>Vielen Dank,<br />
Hilfeeee</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331694</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331694</guid><dc:creator><![CDATA[Hilfeeee]]></dc:creator><pubDate>Tue, 24 Jul 2007 16:54:49 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 16:58:27 GMT]]></title><description><![CDATA[<p>Seh ich das richtig? Du willst den eingegebenen String an den Leerzeichen splitten? Dann ist <a href="http://www.boost.org/libs/tokenizer/index.html" rel="nofollow">boost::tokenizer</a> vllt was für dich.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331695</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 24 Jul 2007 16:58:27 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 17:00:51 GMT]]></title><description><![CDATA[<p>ohne STL, dann solltest auch ohne std::string arbeiten^^</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331696</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331696</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Tue, 24 Jul 2007 17:00:51 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 17:02:30 GMT]]></title><description><![CDATA[<p>Leute... Das Problem ist nicht das Splitten oder die Verwendung von std::string <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /></p>
<p>Ich möchte NUR die Liste füllen und damit das jeder versteht habe ich noch dieses simple Beispiel drum rum gebaut... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331697</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331697</guid><dc:creator><![CDATA[Hilfeeee]]></dc:creator><pubDate>Tue, 24 Jul 2007 17:02:30 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 17:05:30 GMT]]></title><description><![CDATA[<p>Ahja, was für eine Liste denn? Ein Array oder wie? Wenns C sein soll bist du definitiv im falschen Forum.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331698</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331698</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 24 Jul 2007 17:05:30 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 17:07:49 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Ahja, was für eine Liste denn? Ein Array oder wie? Wenns C sein soll bist du definitiv im falschen Forum.</p>
</blockquote>
<p>Ja! Wäre sinvoll meinen Code anzusehen:<br />
&quot;Ich habe dazu schon die Variabel Args angelegt...&quot;<br />
Ich bin eben davon ausgegangen, das die Leute sich hier noch mit new, und Arrays auskennen...</p>
<pre><code class="language-cpp">char **Args = NULL;

/*
Füllen?
*/

delete[] Args;
</code></pre>
<p>...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331699</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331699</guid><dc:creator><![CDATA[Hilfeeee]]></dc:creator><pubDate>Tue, 24 Jul 2007 17:07:49 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 17:11:09 GMT]]></title><description><![CDATA[<p>Hilfeeee schrieb:</p>
<blockquote>
<p>Ich bin eben davon ausgegangen, das die Leute sich hier noch mit new, und Arrays auskennen...</p>
</blockquote>
<p>Bevor du weiterredest überleg mal Haarscharf ob <em>new</em> tatsächlich in dein gewünschtes Konzept &quot;only C&quot; passt... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f644.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_rolling_eyes"
      title=":rolling_eyes:"
      alt="🙄"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331703</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331703</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 24 Jul 2007 17:11:09 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 17:19:09 GMT]]></title><description><![CDATA[<p>Ihr versteht es nicht, oder? Die Schnitstelle soll in C sein. Wie das ganze erzeugt wird ist im Endeffekt egal! Ein Mehrfachaufwand von erst: Boost installieren mache ich mir hierfür aber auch nicht! Na ja vielleicht hatte mein Freund recht, dass ich lieber in einem anderen Forum fragen sollte....</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331712</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331712</guid><dc:creator><![CDATA[Hilfeeee]]></dc:creator><pubDate>Tue, 24 Jul 2007 17:19:09 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 17:26:59 GMT]]></title><description><![CDATA[<p>Ja solltest du evtl tun! <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f62e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_with_open_mouth"
      title=":open_mouth:"
      alt="😮"
    /> Is ja schon unverschämt wie du hier Lösungen einforderst...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331722</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331722</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 24 Jul 2007 17:26:59 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 18:47:50 GMT]]></title><description><![CDATA[<p>Vielleicht sollte ich mich für dieses Verhalten entschuldigen, jedoch war ich über die Antworten sehr verärgert, da ich davon ausgegangen bin, das mein Problem klar geschildert ist und ich um Antworten wie &quot;dann brauchst du auch kein std::string benutzen&quot; extra geschrieben hatte, das dies nur ein Beispiel ist. Da ich &quot;new&quot; benutzt habe, bin ich davon ausgegangen, dass ich ruhig im C++-Bereich fragen kann, da es schließlich auch Arrays in C++ gibt.</p>
<p>Ich wäre nun über eine Lösung meines Problems sehr dankbar und entschuldig emich nochmals für mein Verhalten.</p>
<p>Mit freundlichen Grüße,<br />
Hilfeeee</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331784</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331784</guid><dc:creator><![CDATA[Hilfeeee]]></dc:creator><pubDate>Tue, 24 Jul 2007 18:47:50 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 19:04:41 GMT]]></title><description><![CDATA[<p>Als erstes würde ich die Leerzeichen zählen, damit du weißt, wieviele Strings du brauchst (Leerzeichenanzahl+1).<br />
Dann kannst du ja durch deinen String durchgehen und dir immer die letzte Leerzeichen-Position merken (am Anfang 0). Wenn du auf ein Leerzeichen stößt, legst du einen String an mit dem Inhalt von der letzten Leerzeichenposition bis zum jetzigen Zeichen, setzt die &quot;letzte Leerzeichen-Position&quot; auf das aktuelle Zeichen und gehst weiter. Nach der Schleife musst du natürlich noch den Rest, also von der letzten Leerzeichen-Pos. bis zum String-Ende in den Array einfügen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331793</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331793</guid><dc:creator><![CDATA[Badestrand]]></dc:creator><pubDate>Tue, 24 Jul 2007 19:04:41 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 19:10:39 GMT]]></title><description><![CDATA[<p>Na also, geht doch...<br />
So ausm stehgreif:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;algorithm&gt;
#include &lt;iterator&gt;

int main()
{
	char** args = 0;
	std::string line;

	std::getline( std::cin, line );

	std::size_t tokens = std::count( line.begin(), line.end(), ' ' ) + 1;
	args = new char*[ tokens ];

	std::string::size_type p0, p1;

	p0 = p1 = 0;

	for ( unsigned i = 0; i &lt; tokens; ++i )
	{
		p0 = line.find( ' ', p0+1 );

		if ( p0 == std::string::npos )
		{
			p0 = line.length();
		}

		std::size_t len = p0-p1;

		args[ i ] = new char[ len+1 ];

		strncpy( args[ i ], &amp;line[ p1 ], len );
		//std::copy( &amp;line[ p1 ], &amp;line[ p1+len ], args[ i ] );
		args[ i ][ len ] = '\0';

		p1 = p0 + 1;
	}

	// Ausgabe zum Test
	std::copy( args, args+tokens, std::ostream_iterator&lt; const char* &gt;( std::cout, &quot;\n&quot; ) );

	// Speicher freigeben
	for ( unsigned i = 0; i &lt; tokens; ++i )
	{
		delete [] args[ i ];
	}

	delete [] args;

	std::cin.get();
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1331795</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331795</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 24 Jul 2007 19:10:39 GMT</pubDate></item><item><title><![CDATA[Reply to Liste erzeugen... on Tue, 24 Jul 2007 20:11:50 GMT]]></title><description><![CDATA[<p>Also ich steh ja auf den stringstream:</p>
<pre><code class="language-cpp">#include &lt;string&gt;
using std::string;

#include &lt;vector&gt;
using std::vector;

#include &lt;sstream&gt;
using std::istringstream;

#include &lt;iostream&gt;
using std::cout;

#include &lt;algorithm&gt;
using std::copy;

#include &lt;iterator&gt;
using std::istream_iterator;

using std::size_t;
using std::back_inserter;

int main (int argc, char **argv)
{

int main()
{
   char** args = 0;
   string line;

   getline( std::cin, line );

   // line -&gt; in
   istringstream in(line);
   vector&lt;string&gt; vec;

   // in -&gt; vec (zerteilt automatisch)
   copy(istream_iterator&lt;string&gt;(in), istream_iterator&lt;string&gt;(), back_inserter(vec)); 

   // args ausreichend dimensionieren ...
   args = new char*[ vec.size() ];
   // ... und stückweise reinkopieren
   for ( size_t i = 0; i &lt; vec.size(); ++i ) {
      args[ i ] = new char[ vec[i].length()+1 ];
     strncpy( args[ i ], vec[i].c_str(), vec[i].length());
     args[ i ][ vec[i].length() ] = '\0';
   }
...
</code></pre>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1331825</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1331825</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 24 Jul 2007 20:11:50 GMT</pubDate></item></channel></rss>