<?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[char mit int variable vergleichen]]></title><description><![CDATA[<p>ok, hab folgendes nuub problem:</p>
<p>ich möchte eine char variable mit einer int variable vergleichen; beide variablen werden vorher eingelesen. hier ein beispielcode:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(){

    int a;
    char b;

    cin &gt;&gt; a;
    cin &gt;&gt; b;

    cout &lt;&lt; a &lt;&lt; endl;
    cout &lt;&lt; b &lt;&lt; endl;

    if(a==b)
      cout &lt;&lt; &quot;true&quot; &lt;&lt; endl;       
    else
      cout &lt;&lt; &quot;false&quot; &lt;&lt; endl;

    return 0;

}
</code></pre>
<p>wie muss ich die char var konvertieren, um sie mit der int vergleichen zu können? möchte keine dritte variable nehmen und darf auch keine externen bibliotheken verwenden (ausser iostream;)<br />
sorry, ich weiss ein häufiges problem, aber ich konnte keine konkrete antwort für mein beispiel finden ...</p>
<p>Lg, pete</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/164947/char-mit-int-variable-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Mon, 14 Sep 2026 04:13:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/164947.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 14 Nov 2006 06:26:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 06:26:34 GMT]]></title><description><![CDATA[<p>ok, hab folgendes nuub problem:</p>
<p>ich möchte eine char variable mit einer int variable vergleichen; beide variablen werden vorher eingelesen. hier ein beispielcode:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

int main(){

    int a;
    char b;

    cin &gt;&gt; a;
    cin &gt;&gt; b;

    cout &lt;&lt; a &lt;&lt; endl;
    cout &lt;&lt; b &lt;&lt; endl;

    if(a==b)
      cout &lt;&lt; &quot;true&quot; &lt;&lt; endl;       
    else
      cout &lt;&lt; &quot;false&quot; &lt;&lt; endl;

    return 0;

}
</code></pre>
<p>wie muss ich die char var konvertieren, um sie mit der int vergleichen zu können? möchte keine dritte variable nehmen und darf auch keine externen bibliotheken verwenden (ausser iostream;)<br />
sorry, ich weiss ein häufiges problem, aber ich konnte keine konkrete antwort für mein beispiel finden ...</p>
<p>Lg, pete</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174148</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174148</guid><dc:creator><![CDATA[pete t.]]></dc:creator><pubDate>Tue, 14 Nov 2006 06:26:34 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 06:44:00 GMT]]></title><description><![CDATA[<p>Wenn der Wert der Integervariable im Wertbereich eines char liegt kannst du beide Variablen genau so Vergleichen wie du das bereits tust.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174153</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174153</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 14 Nov 2006 06:44:00 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 06:50:32 GMT]]></title><description><![CDATA[<p>dachte ich auch, aber wenn ich für beide vars z.b. 4 eingebe kommt trotzdem &quot;false&quot; ... wenn ich allerdings für a 52 eingebe und für b 4 --&gt; &quot;true&quot; ...<br />
ASCII Code nehm ich mal an! hat das was mit dem kompilieren zu tun?</p>
<p>bin ratlos ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174155</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174155</guid><dc:creator><![CDATA[pete t.]]></dc:creator><pubDate>Tue, 14 Nov 2006 06:50:32 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 06:55:42 GMT]]></title><description><![CDATA[<p>Nein, das ist vollkommen korrekt. Alles was du umwandeln musst ist das eingegebene Zeichen in die entsprechende Zahl.</p>
<p>grüße</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174158</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174158</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 14 Nov 2006 06:55:42 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 07:55:35 GMT]]></title><description><![CDATA[<p>ok und wie mache ich das?<br />
theoretisch ginge ja<br />
b=b-48; (da b einstellig ist)<br />
is aber nicht besonders elegant, oder?<br />
gibts andere möglichkeiten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174184</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174184</guid><dc:creator><![CDATA[pete t.]]></dc:creator><pubDate>Tue, 14 Nov 2006 07:55:35 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 08:20:23 GMT]]></title><description><![CDATA[<p>pete t. schrieb:</p>
<blockquote>
<p>dachte ich auch, aber wenn ich für beide vars z.b. 4 eingebe kommt trotzdem &quot;false&quot; ...</p>
</blockquote>
<p>Glaube ich nicht ! <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="😉"
    /><br />
Es könnte aber sein, daß Du für b (char-Variable) nicht 4, sondern '4' eingegeben hast ... und das entspricht (bei ASCII-Codepage) dem numerischen Wert von 52.</p>
<p>Was Du willst, ist vermutlich</p>
<pre><code class="language-cpp">std::string b;

std::cin &gt;&gt; b;
if(a == atoi(b)) {
...
</code></pre>
<p>Ein Vorteil ist, dass das dann auch bei mehstellgen Zahlen funktioniert; ein weiterer, dass es plattformunabhängig ist (also auch auf Maschinen mit anderen Zeichensätzen funktioniert).</p>
<p>Wenn es wirklich nur um einstellige geht, kannst Du auch selbst &quot;mappen&quot;:</p>
<pre><code class="language-cpp">// C-Variante
int char2IntMap[256];

void initChar2IntMap() {
    for(int i=0; i&lt;256; ++i) char2IntMap[i] = -1;
    char2IntMap['0'] = 0;
    char2IntMap['1'] = 1;
    char2IntMap['2'] = 2;
    char2IntMap['3'] = 3;
    char2IntMap['4'] = 4;
    char2IntMap['5'] = 5;
    char2IntMap['6'] = 6;
    char2IntMap['7'] = 7;
    char2IntMap['8'] = 8;
    char2IntMap['9'] = 9;
}

...
    if(-1 == char2IntMap[b]) throw std::runtime_error(&quot;ungültige Eingabe&quot;);
    if(a == char2IntMap[b]) ...
...
</code></pre>
<p>(Kann man auch mit std::map und natürlich variabler Char-Bereich/WChar, ... machen - geht mir nur darum, das Prinzip zu zeigen)</p>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174198</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174198</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 14 Nov 2006 08:20:23 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 08:47:41 GMT]]></title><description><![CDATA[<p>So:</p>
<pre><code class="language-cpp">c -= '0';
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1174237</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174237</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Tue, 14 Nov 2006 08:47:41 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 09:10:23 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>So:</p>
<pre><code class="language-cpp">c -= '0';
</code></pre>
</blockquote>
<p>Ist zwar schon &quot;ein wenig portabler&quot;, aber läuft immer noch Gefahr, auf einem exotischen Codesatz baden zu gehen (bei EBCDIC z.B. ist das Alphabet nicht kontinuierlich auf den Zahlenbereich verteilt ... das warnt mich, dass es bestimmt irgendeinen kruden Satz gibt, bei dem es auf bei Ziffern so ist <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>
<p>Gruß,</p>
<p>Simon2.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174257</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174257</guid><dc:creator><![CDATA[Simon2]]></dc:creator><pubDate>Tue, 14 Nov 2006 09:10:23 GMT</pubDate></item><item><title><![CDATA[Reply to char mit int variable vergleichen on Tue, 14 Nov 2006 10:10:06 GMT]]></title><description><![CDATA[<blockquote>
<p>ASCII Code nehm ich mal an!</p>
</blockquote>
<p>vollkommen richtig!<br />
wenn man den charakter 4 in int castet erhält man 52 (dezimaler Ascii-Wert),<br />
also kann nie und nimmer &quot;true&quot; rauskommen, wenn du jeweils 4 eingibst.</p>
<p>(int)char<br />
int(char)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1174308</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1174308</guid><dc:creator><![CDATA[alexC++]]></dc:creator><pubDate>Tue, 14 Nov 2006 10:10:06 GMT</pubDate></item></channel></rss>