<?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 in C++]]></title><description><![CDATA[<p>Hay Leute,</p>
<pre><code>#include&lt;iostream&gt;
#include&lt;string&gt;

//#include &quot;functions.h&quot;

using namespace std;

int main()
{
    string Eingabe;
    string Befehl;
    string Operant[2];
    string Opcode;
    int Zaehler;

    while(1)
    {
    	Zaehler=0;
        cout &lt;&lt; &quot;Bitte einen Befehl eingeben: &quot;;

        getline(cin, Eingabe);
        //Eingabe=trim(Eingabe);

        while(!(Eingabe[Zaehler]==' ' || Eingabe[Zaehler]=='\0'))
        {
            Befehl[Zaehler]=Eingabe[Zaehler];
            Zaehler++;
        }

        cout &lt;&lt; &quot;Der bisher eingegebene Befehl ist: &quot; &lt;&lt; Befehl.c_str() &lt;&lt; endl;

        if(Befehl==&quot;hlt&quot;) Opcode=&quot;F4&quot;;
        if(Befehl==&quot;cli&quot;) Opcode=&quot;FA&quot;;
        if(Befehl==&quot;sti&quot;) Opcode=&quot;FB&quot;;
        if (Befehl==&quot;clc&quot;) Opcode=&quot;F8&quot;;
        if (Befehl==&quot;&quot;) Opcode=&quot;&quot;;

        if(Eingabe[Zaehler]==' ')
        {
        	Zaehler++;

        	while(!(Eingabe[Zaehler]==',' || Eingabe[Zaehler]=='\0'))
        	{
        		Operant[0][Zaehler]=Eingabe[Zaehler];
        		Zaehler++;
        	}
        }

		cout &lt;&lt; &quot;Der Opcode ist: 0x&quot; &lt;&lt; Opcode.c_str() &lt;&lt; endl;
        cout &lt;&lt; &quot;noch einmal?: &quot;;
        getline(cin, Eingabe);

        if(Eingabe==&quot;nein&quot;) break;
    }
}
</code></pre>
<p>Ich starte das Programm und gebe bei der ersten Eingabeaufforderung &quot;cli&quot; ein.<br />
Bei der ersten Ausgabe wird dann</p>
<pre><code>Der bisher eingegebene Befehl ist: cli
</code></pre>
<p>ausgegeben aber als zweite Ausgabe wird</p>
<pre><code>Der Opcode ist: 0xcli
</code></pre>
<p>ausgegeben.<br />
Erwartet hatte ich</p>
<pre><code>Der Opcode ist: 0xFA
</code></pre>
<p>Was läuft da falsch?</p>
<p>Danke schon mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/322535/strings-in-c</link><generator>RSS for Node</generator><lastBuildDate>Sat, 18 Jul 2026 03:21:31 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/322535.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Dec 2013 17:32:26 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Strings in C++ on Thu, 26 Dec 2013 17:32:26 GMT]]></title><description><![CDATA[<p>Hay Leute,</p>
<pre><code>#include&lt;iostream&gt;
#include&lt;string&gt;

//#include &quot;functions.h&quot;

using namespace std;

int main()
{
    string Eingabe;
    string Befehl;
    string Operant[2];
    string Opcode;
    int Zaehler;

    while(1)
    {
    	Zaehler=0;
        cout &lt;&lt; &quot;Bitte einen Befehl eingeben: &quot;;

        getline(cin, Eingabe);
        //Eingabe=trim(Eingabe);

        while(!(Eingabe[Zaehler]==' ' || Eingabe[Zaehler]=='\0'))
        {
            Befehl[Zaehler]=Eingabe[Zaehler];
            Zaehler++;
        }

        cout &lt;&lt; &quot;Der bisher eingegebene Befehl ist: &quot; &lt;&lt; Befehl.c_str() &lt;&lt; endl;

        if(Befehl==&quot;hlt&quot;) Opcode=&quot;F4&quot;;
        if(Befehl==&quot;cli&quot;) Opcode=&quot;FA&quot;;
        if(Befehl==&quot;sti&quot;) Opcode=&quot;FB&quot;;
        if (Befehl==&quot;clc&quot;) Opcode=&quot;F8&quot;;
        if (Befehl==&quot;&quot;) Opcode=&quot;&quot;;

        if(Eingabe[Zaehler]==' ')
        {
        	Zaehler++;

        	while(!(Eingabe[Zaehler]==',' || Eingabe[Zaehler]=='\0'))
        	{
        		Operant[0][Zaehler]=Eingabe[Zaehler];
        		Zaehler++;
        	}
        }

		cout &lt;&lt; &quot;Der Opcode ist: 0x&quot; &lt;&lt; Opcode.c_str() &lt;&lt; endl;
        cout &lt;&lt; &quot;noch einmal?: &quot;;
        getline(cin, Eingabe);

        if(Eingabe==&quot;nein&quot;) break;
    }
}
</code></pre>
<p>Ich starte das Programm und gebe bei der ersten Eingabeaufforderung &quot;cli&quot; ein.<br />
Bei der ersten Ausgabe wird dann</p>
<pre><code>Der bisher eingegebene Befehl ist: cli
</code></pre>
<p>ausgegeben aber als zweite Ausgabe wird</p>
<pre><code>Der Opcode ist: 0xcli
</code></pre>
<p>ausgegeben.<br />
Erwartet hatte ich</p>
<pre><code>Der Opcode ist: 0xFA
</code></pre>
<p>Was läuft da falsch?</p>
<p>Danke schon mal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373751</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373751</guid><dc:creator><![CDATA[ugoessner]]></dc:creator><pubDate>Thu, 26 Dec 2013 17:32:26 GMT</pubDate></item><item><title><![CDATA[Reply to Strings in C++ on Thu, 26 Dec 2013 17:39:07 GMT]]></title><description><![CDATA[<p>zeile 26 ist ub, du greifst auf speicher zu den du nicht reserviert hast. schau dir vll. push_back an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373756</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373756</guid><dc:creator><![CDATA[Fytch]]></dc:creator><pubDate>Thu, 26 Dec 2013 17:39:07 GMT</pubDate></item><item><title><![CDATA[Reply to Strings in C++ on Thu, 26 Dec 2013 17:49:52 GMT]]></title><description><![CDATA[<p>Jo, danke noch mal.<br />
Jetzt, wo du es sagst.<br />
Ich hätte da wohl</p>
<pre><code>Befehl.append(Eingabe[Zaehler]);
</code></pre>
<p>machen sollen.</p>
<p>Werde das gleich mal probieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373758</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373758</guid><dc:creator><![CDATA[ugoessner]]></dc:creator><pubDate>Thu, 26 Dec 2013 17:49:52 GMT</pubDate></item><item><title><![CDATA[Reply to Strings in C++ on Thu, 26 Dec 2013 17:56:14 GMT]]></title><description><![CDATA[<p>OK, append war wohl falsch push_back gibt es also auch bei Strings</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373760</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373760</guid><dc:creator><![CDATA[ugoessner]]></dc:creator><pubDate>Thu, 26 Dec 2013 17:56:14 GMT</pubDate></item><item><title><![CDATA[Reply to Strings in C++ on Thu, 26 Dec 2013 18:08:17 GMT]]></title><description><![CDATA[<p>Ich habe gleich mal noch ne andere Frage: Warum gibt es die trim()-Methode für Strings nicht obwohl es eine wichtige Funktion ist?</p>
<p>Habe es</p>
<pre><code>Eingabe.trim()
</code></pre>
<p>auskommentiert, weil es zum Compilerfehler führte.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373763</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373763</guid><dc:creator><![CDATA[ugoessner]]></dc:creator><pubDate>Thu, 26 Dec 2013 18:08:17 GMT</pubDate></item><item><title><![CDATA[Reply to Strings in C++ on Thu, 26 Dec 2013 18:09:05 GMT]]></title><description><![CDATA[<p>ugoessner schrieb:</p>
<blockquote>
<p>Ich habe gleich mal noch ne andere Frage: Warum gibt es die trim()-Methode für Strings nicht obwohl es eine wichtige Funktion ist?</p>
</blockquote>
<p>Weil std::string broken ist.<br />
Die eine Hälfte der Funktionen will Iteratoren, die andere Indices. Viel zu viele Funktionen in einer Klasse, etc.<br />
Für trim gibts hier was: <a href="http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring" rel="nofollow">http://stackoverflow.com/questions/216823/whats-the-best-way-to-trim-stdstring</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373764</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373764</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 26 Dec 2013 18:09:05 GMT</pubDate></item><item><title><![CDATA[Reply to Strings in C++ on Fri, 27 Dec 2013 04:17:43 GMT]]></title><description><![CDATA[<p>ugoessner schrieb:</p>
<blockquote>
<p>Ich habe gleich mal noch ne andere Frage: Warum gibt es die trim()-Methode für Strings nicht obwohl es eine wichtige Funktion ist?</p>
</blockquote>
<p>1. Weil das keine wichtige Funktion ist.<br />
2. Weil die von dir vorgeschlagene Schnittstelle (vermutlich <code>void std::string::trim()</code> ) keine effiziente Implementation ermöglicht. Wenn das erste Zeichen weggeschnitten wird, muss entweder der gesamte String nach vorne kopiert werden oder es muss pro <code>std::string</code> ein Offset gespeichert werden.<br />
3. Weil man sich einigen müsste welche Zeichen denn genau abgeschnitten werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373822</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373822</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 27 Dec 2013 04:17:43 GMT</pubDate></item><item><title><![CDATA[Reply to Strings in C++ on Fri, 27 Dec 2013 09:50:50 GMT]]></title><description><![CDATA[<p>ugoessner schrieb:</p>
<blockquote>
<p>Warum gibt es die trim()-Methode für Strings nicht obwohl es eine wichtige Funktion ist?</p>
</blockquote>
<p>Wenn die Frage ist, warum es sie nicht gibt, ist die Antwort: Weil sie damals, als die Standardbibliothek geschrieben wurde, niemand eingebaut hat.</p>
<p>Wenn die Frage ist, warum sie aus moderner Sicht nicht da drin sein sollte: Weil sie mit dem bestehenden Interface leicht zu implementieren ist und daher keinen Zugriff auf die privaten Member des Strings braucht (ohnehin hat std::string viel zu viele Methoden). Eine Implementation als freie Funktionsvorlage gibt es in <a href="http://www.boost.org/doc/libs/1_55_0/doc/html/string_algo/usage.html#idp206822440" rel="nofollow">Boost.StringAlgo</a>. Ob daraus mal std::trim werden wird, kann ich dir nicht sagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2373829</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2373829</guid><dc:creator><![CDATA[seldon]]></dc:creator><pubDate>Fri, 27 Dec 2013 09:50:50 GMT</pubDate></item></channel></rss>