<?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[Wie lese ich einen String richtig ein und teile ihn nach Leerzeichen auf?]]></title><description><![CDATA[<p>Hallo, ich möchte einen String für einen Postfixtaschenrechner von der Tastatur einlesen.</p>
<p>Bsp.: postfix&gt; 44 2 467 3 - - 3 * +</p>
<p>Nun wollte ich die Zahlen auf einen Stack speichern um die Operationen auszuführen,<br />
mein Problem ist allerdings, dass ich nicht weis, wie ich das Programm schreiben soll, wenn ich vorher nicht weis, wie viele Eingaben gemacht werden.</p>
<p>Habt ihr einen Tipp für mich, oder geht es nur über einen sehr komplexen C - Algorithmus(der dann schaut wie viele Zeichen ne Zahl lang ist, oder obs ein Operator ist usw..)?</p>
<p>Vielen Dank für Eure Mühen</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286838/wie-lese-ich-einen-string-richtig-ein-und-teile-ihn-nach-leerzeichen-auf</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 18:10:36 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286838.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 17 May 2011 11:45:18 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie lese ich einen String richtig ein und teile ihn nach Leerzeichen auf? on Tue, 17 May 2011 11:45:18 GMT]]></title><description><![CDATA[<p>Hallo, ich möchte einen String für einen Postfixtaschenrechner von der Tastatur einlesen.</p>
<p>Bsp.: postfix&gt; 44 2 467 3 - - 3 * +</p>
<p>Nun wollte ich die Zahlen auf einen Stack speichern um die Operationen auszuführen,<br />
mein Problem ist allerdings, dass ich nicht weis, wie ich das Programm schreiben soll, wenn ich vorher nicht weis, wie viele Eingaben gemacht werden.</p>
<p>Habt ihr einen Tipp für mich, oder geht es nur über einen sehr komplexen C - Algorithmus(der dann schaut wie viele Zeichen ne Zahl lang ist, oder obs ein Operator ist usw..)?</p>
<p>Vielen Dank für Eure Mühen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2064571</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2064571</guid><dc:creator><![CDATA[Dany303]]></dc:creator><pubDate>Tue, 17 May 2011 11:45:18 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lese ich einen String richtig ein und teile ihn nach Leerzeichen auf? on Tue, 17 May 2011 11:47:14 GMT]]></title><description><![CDATA[<p>stringstreams<br />
die reagieren auch auf leerzeichen</p>
<p>und das alles in einem container deiner wahl abgelegt (stack oder vector oder was)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2064573</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2064573</guid><dc:creator><![CDATA[Skym0sh0]]></dc:creator><pubDate>Tue, 17 May 2011 11:47:14 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lese ich einen String richtig ein und teile ihn nach Leerzeichen auf? on Tue, 17 May 2011 11:59:59 GMT]]></title><description><![CDATA[<p>danke!!! :-&gt;</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2064585</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2064585</guid><dc:creator><![CDATA[Dany303]]></dc:creator><pubDate>Tue, 17 May 2011 11:59:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lese ich einen String richtig ein und teile ihn nach Leerzeichen auf? on Tue, 17 May 2011 13:48:30 GMT]]></title><description><![CDATA[<p>Ich verwende folgende C-Implementierung in meinen Konsolenprogrammen zum Einlesen und Tokenizen:</p>
<pre><code class="language-cpp">bool GetInput(FILE* stream, char input[]) {
  assert(stream != NULL);
  assert(input != NULL);

  // Get next input from stream.
  if (fgets(input, INPUT_TOKENS*INPUT_TOKEN_LENGTH, stream) == NULL) {
    if (feof(stream)) {
      return false;
    } else {
      PrintErrorAndExit(&quot;GetInput()&quot;);
    }
  }

  // Overwrite the trailing line feed with null.
  for (int i = 0; i &lt; INPUT_TOKENS*INPUT_TOKEN_LENGTH; ++i) {
    if (input[i] == '\n') {
      input[i] = '\0';
      return true;
    } else if (input[i] == '\0') {
      return true;
    }
  }
  return false;
}

int Tokenize(const char input[], char token_list[][INPUT_TOKEN_LENGTH]) {
  assert(input != NULL);
  assert(token_list != NULL);

  int tokens = 0;
  int index = 0;

  // White space characters (0x09 - 0x0D, 0x20) are taken for tokenizing.
  while (true) {
    while (isspace(input[index])) {
      ++index;
    }
    if (input[index] == 0) {
      return tokens;
    }
    for (int i = index; ; ++index) {
      if (isspace(input[index])) {
        token_list[tokens++][index-i] = 0;
        break;
      } else if (input[index] == 0) {
        token_list[tokens++][index-i] = 0;
        return tokens;
      } else {
        token_list[tokens][index-i] = input[index];
      }
    }
  }  // while
}

bool Loop(FILE* stream) {
  assert(stream != NULL);

  char input[INPUT_TOKENS*INPUT_TOKEN_LENGTH];  // 64 KB
  char token_list[INPUT_TOKENS][INPUT_TOKEN_LENGTH];  // 64 KB

  while (true) {
    int tokens;

    if (GetInput(stream, input)) {
      tokens = Tokenize(input, token_list);
    } else {
      return false;
    }

    // Now you have all tokens :-)
  }  // while
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2064695</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2064695</guid><dc:creator><![CDATA[Tomahawk]]></dc:creator><pubDate>Tue, 17 May 2011 13:48:30 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lese ich einen String richtig ein und teile ihn nach Leerzeichen auf? on Tue, 17 May 2011 14:12:26 GMT]]></title><description><![CDATA[<p>wäre es nicht einfacher es gleich als Zahl und Operator einzulesen? Wozu die Strings?<br />
Suche mal hier im Forum nach 'Taschenrechner' oder 'polnischer Notation'.</p>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2064710</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2064710</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Tue, 17 May 2011 14:12:26 GMT</pubDate></item><item><title><![CDATA[Reply to Wie lese ich einen String richtig ein und teile ihn nach Leerzeichen auf? on Tue, 17 May 2011 19:01:55 GMT]]></title><description><![CDATA[<p>Bezüglich der Aufteilung nach Leerzeichen bestünde vielleicht die Möglichkeit, eine Stringvariable als Leerzeichen zu definieren und darüber entsprechend aufteilen zu können?<br />
Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;

using namespace std;

int main()
{
string vorname=&quot;Michael&quot;;
string nachname=&quot;Mustermann&quot;;
string leerzeichen=&quot; &quot;;
string name;

name=vorname + leerzeichen + nachname;
cout&lt;&lt;&quot;Name= &quot;&lt;&lt;name&lt;&lt;endl;

return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2064873</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2064873</guid><dc:creator><![CDATA[redrew99]]></dc:creator><pubDate>Tue, 17 May 2011 19:01:55 GMT</pubDate></item></channel></rss>