<?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[Variable mit Eingaben die aus Buchstaben bestehen vergleichen]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich beschäftige mich noch nicht sehr lange mit C++ also wollte ich wegen einer Sache mal nachfragen. Der Vergleich bei if oder switch mit Eingaben die aus Zahlen mit Variablen zu vergleichen funktioniert ohne Probleme.</p>
<p>Bsp.:</p>
<blockquote>
<p>if (eingabe1==2)<br />
cout&lt;&lt;&quot;Hallo&quot;;<br />
else cout&lt;&lt;&quot;Tschuess&quot;;</p>
</blockquote>
<p>Wenn ich das nun mit Buchstaben bzw. Namen versuchen will funktioniert das nicht.</p>
<p>Bsp.:</p>
<blockquote>
<p>if (eingabe1==a)<br />
cout&lt;&lt;&quot;Hallo&quot;;<br />
else cout&lt;&lt;&quot;Tschuess&quot;;</p>
</blockquote>
<p>Dort bekomme ich dann die Meldung:</p>
<blockquote>
<p>'a': nichtdeklarierter Bezeichner</p>
</blockquote>
<p>Klingt ja auch logisch, da &quot;a&quot; als Variable angesehen wird die keinen Wert bekommen hat.</p>
<p>Wie kann ich das denn so ändern, das &quot;a&quot; nur als Buchstabe erkannt wird und vergleicht werden kann?</p>
<p>Ich bedanke mich schon mal für die Antworten.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/251580/variable-mit-eingaben-die-aus-buchstaben-bestehen-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Tue, 15 Sep 2026 11:11:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/251580.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 07 Oct 2009 10:55:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Variable mit Eingaben die aus Buchstaben bestehen vergleichen on Wed, 07 Oct 2009 10:55:58 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Ich beschäftige mich noch nicht sehr lange mit C++ also wollte ich wegen einer Sache mal nachfragen. Der Vergleich bei if oder switch mit Eingaben die aus Zahlen mit Variablen zu vergleichen funktioniert ohne Probleme.</p>
<p>Bsp.:</p>
<blockquote>
<p>if (eingabe1==2)<br />
cout&lt;&lt;&quot;Hallo&quot;;<br />
else cout&lt;&lt;&quot;Tschuess&quot;;</p>
</blockquote>
<p>Wenn ich das nun mit Buchstaben bzw. Namen versuchen will funktioniert das nicht.</p>
<p>Bsp.:</p>
<blockquote>
<p>if (eingabe1==a)<br />
cout&lt;&lt;&quot;Hallo&quot;;<br />
else cout&lt;&lt;&quot;Tschuess&quot;;</p>
</blockquote>
<p>Dort bekomme ich dann die Meldung:</p>
<blockquote>
<p>'a': nichtdeklarierter Bezeichner</p>
</blockquote>
<p>Klingt ja auch logisch, da &quot;a&quot; als Variable angesehen wird die keinen Wert bekommen hat.</p>
<p>Wie kann ich das denn so ändern, das &quot;a&quot; nur als Buchstabe erkannt wird und vergleicht werden kann?</p>
<p>Ich bedanke mich schon mal für die Antworten.</p>
<p>mfg</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1789147</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1789147</guid><dc:creator><![CDATA[Gast23]]></dc:creator><pubDate>Wed, 07 Oct 2009 10:55:58 GMT</pubDate></item><item><title><![CDATA[Reply to Variable mit Eingaben die aus Buchstaben bestehen vergleichen on Wed, 07 Oct 2009 11:05:10 GMT]]></title><description><![CDATA[<p>Zeichenliterale werden mit Hochkommas eingeschlossen: 'a'</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1789153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1789153</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Wed, 07 Oct 2009 11:05:10 GMT</pubDate></item><item><title><![CDATA[Reply to Variable mit Eingaben die aus Buchstaben bestehen vergleichen on Wed, 07 Oct 2009 11:13:00 GMT]]></title><description><![CDATA[<p>Ich habe es jetzt mal so versucht:</p>
<blockquote>
<p>#include &lt;iostream&gt;</p>
<p>using namespace std;</p>
<p>int main()</p>
<p>{<br />
char eingabe1[10];</p>
<p>cout&lt;&lt;&quot;Bitte Buchstabe eingeben:&quot;;<br />
cin&gt;&gt;eingabe1;</p>
<p>if (eingabe1=='b')<br />
cout&lt;&lt;&quot;Geht&quot;;<br />
else cout&lt;&lt;&quot;Geht nicht&quot;;</p>
<p>cin.get();<br />
cin.get();<br />
return 0;</p>
<p>}</p>
</blockquote>
<p>Wenn ich nun versuche zu starten bekomme ich folgende Fehlermeldungen:</p>
<blockquote>
<p>error C2446: '==': Keine Konvertierung von 'int' in 'char *'<br />
1&gt; Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
error C2040: '==': 'char [10]' unterscheidet sich von 'int' in Bezug auf die Anzahl vorgenommener Dereferenzierungen</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/1789157</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1789157</guid><dc:creator><![CDATA[Gast23]]></dc:creator><pubDate>Wed, 07 Oct 2009 11:13:00 GMT</pubDate></item><item><title><![CDATA[Reply to Variable mit Eingaben die aus Buchstaben bestehen vergleichen on Wed, 07 Oct 2009 11:28:01 GMT]]></title><description><![CDATA[<p>Nimm mal</p>
<pre><code class="language-cpp">char eingabe1;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1789168</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1789168</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 07 Oct 2009 11:28:01 GMT</pubDate></item><item><title><![CDATA[Reply to Variable mit Eingaben die aus Buchstaben bestehen vergleichen on Wed, 07 Oct 2009 11:30:41 GMT]]></title><description><![CDATA[<p>Ohne die &quot;10&quot; funktioniert es schonmal, danke. Wie ist das nun wenn ich das mit ganzen Wörtern machen will?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1789170</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1789170</guid><dc:creator><![CDATA[Gast23]]></dc:creator><pubDate>Wed, 07 Oct 2009 11:30:41 GMT</pubDate></item><item><title><![CDATA[Reply to Variable mit Eingaben die aus Buchstaben bestehen vergleichen on Wed, 07 Oct 2009 11:32:29 GMT]]></title><description><![CDATA[<p>Gast23 schrieb:</p>
<blockquote>
<p>Wenn ich nun versuche zu starten bekomme ich folgende Fehlermeldungen:</p>
<blockquote>
<p>error C2446: '==': Keine Konvertierung von 'int' in 'char *'<br />
1&gt; Die Konvertierung eines ganzzahligen Typs in einen Zeigertyp erfordert ein reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat<br />
error C2040: '==': 'char [10]' unterscheidet sich von 'int' in Bezug auf die Anzahl vorgenommener Dereferenzierungen</p>
</blockquote>
</blockquote>
<p>eingabe ist ein Array vom Typ char[10].</p>
<p>cin &gt;&gt; eingabe; schreit nach einem Buffer-Overflow. (Was passiert, wenn die Eingabe länger als 9 Zeichen ist? --&gt; Chaos!</p>
<p>'b' ein Literal vom Typ char.</p>
<p>eingabe == 'b' führt dazu, dass aus der linken Seite ein Zeiger auf das erste Element wird -- Wenn man Arrays nur schräg anguckt, kommt ein Zeiger heraus -- die rechte Seite wird zu einem int &quot;promoted&quot;. (siehe &quot;integral promotion&quot; im C++ Standard). Du vergleichst also ein char* mit einem int, was nicht geht.</p>
<p>Du kannst stattdessen eingabe[0]=='a' schreiben. Damit würdest Du das erste Zeichen des Arrays mit 'a' vergleichen. Dieser Vergleich liefert aber auch den Wahrheitswert &quot;true&quot;, falls die Eingabe &quot;abc&quot; ist, da das erste Zeichen immer noch ein 'a' ist.</p>
<p>Alternativ nimmst Du einen std::string:</p>
<pre><code class="language-cpp">string blup;
  cin &gt;&gt; blup;
  if (blup == &quot;a&quot;) {
    ...
  } else {
    ...
  }
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1789171</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1789171</guid><dc:creator><![CDATA[Sebastian Pizer]]></dc:creator><pubDate>Wed, 07 Oct 2009 11:32:29 GMT</pubDate></item></channel></rss>