<?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[if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;]]]></title><description><![CDATA[<p>Hey,</p>
<p>wenn ich in Delphi wissen möchte, ob ein char einen Wert von A-Z oder &quot;1&quot; hat, konnte ich das so machen:</p>
<pre><code>if c in ['A'..'Z', '1'] then {..};
</code></pre>
<p>Gibt es so etwas auch in C++? (Google spuckte nichts dergleichen aus) Oder muss ich das à la ('A' &lt;= c &lt;= 'Z' ; c=='1') machen?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/320343/if-c-in-quot-a-quot-quot-z-quot-quot-1-quot</link><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Jul 2026 02:46:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/320343.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 24 Sep 2013 21:55:01 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Tue, 24 Sep 2013 21:55:01 GMT]]></title><description><![CDATA[<p>Hey,</p>
<p>wenn ich in Delphi wissen möchte, ob ein char einen Wert von A-Z oder &quot;1&quot; hat, konnte ich das so machen:</p>
<pre><code>if c in ['A'..'Z', '1'] then {..};
</code></pre>
<p>Gibt es so etwas auch in C++? (Google spuckte nichts dergleichen aus) Oder muss ich das à la ('A' &lt;= c &lt;= 'Z' ; c=='1') machen?</p>
<p>Vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355285</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355285</guid><dc:creator><![CDATA[Frolo]]></dc:creator><pubDate>Tue, 24 Sep 2013 21:55:01 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Tue, 24 Sep 2013 22:04:49 GMT]]></title><description><![CDATA[<blockquote>
<p>Oder muss ich das à la ('A' &lt;= c &lt;= 'Z' ; c=='1') machen?</p>
</blockquote>
<p>Das wird das schnellste und direkteste sein. Was spricht dagegen, die Syntax? Die würdest du auch anders recht gut erreichen, aber das wäre längst nicht so schnell... gerade weil hier A bis Z durch zwei solche Ungleichungen ausgedrückt werden kann.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355290</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355290</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 24 Sep 2013 22:04:49 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Tue, 24 Sep 2013 22:13:09 GMT]]></title><description><![CDATA[<p>Ja, ich hab mich nur daran gewöhnt, dass in Delphi relativ viel kurz ist..</p>
<pre><code>if ( ((c &gt;= 'A') &amp;&amp; (c &lt;= 'Z')) || (c=='1') ) {
}
</code></pre>
<p>ist halt um einiges länger (vor allem bei mehr Faktoren)</p>
<p>Aber trotzdem vielen Dank!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355292</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355292</guid><dc:creator><![CDATA[Frolo]]></dc:creator><pubDate>Tue, 24 Sep 2013 22:13:09 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Tue, 24 Sep 2013 22:14:54 GMT]]></title><description><![CDATA[<p>Das ist auch völlig redundant:</p>
<pre><code>if ( c &gt;= 'A' &amp;&amp; c &lt;= 'Z' || c == '1' )
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2355293</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355293</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Tue, 24 Sep 2013 22:14:54 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Wed, 25 Sep 2013 04:01:12 GMT]]></title><description><![CDATA[<p>Ein <a href="http://www.cplusplus.com/reference/cctype/isupper/" rel="nofollow">isupper()</a> geht hier auch.</p>
<pre><code>if ( isupper(c) || (c=='1') ) {
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2355306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355306</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Wed, 25 Sep 2013 04:01:12 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Wed, 25 Sep 2013 11:48:37 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Das ist auch völlig redundant:</p>
<pre><code>if ( c &gt;= 'A' &amp;&amp; c &lt;= 'Z' || c == '1' )
</code></pre>
</blockquote>
<p>Gerade die Klammern bei Konjunktion und Disjunktion sollte man der Lesbarkeitshalber aber belassen, auch die anderen Klammern machen das ganze nur übersichtlicher.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355418</guid><dc:creator><![CDATA[Cyres]]></dc:creator><pubDate>Wed, 25 Sep 2013 11:48:37 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Wed, 25 Sep 2013 12:44:46 GMT]]></title><description><![CDATA[<p>Cyres schrieb:</p>
<blockquote>
<p>Gerade die Klammern bei Konjunktion und Disjunktion sollte man der Lesbarkeitshalber aber belassen, auch die anderen Klammern machen das ganze nur übersichtlicher.</p>
</blockquote>
<p>Ich persönlich lasse Klammern fast immer weg, wenn ich es kann. Sie machen Code in vielen Fällen weniger lesbar und lenken von den tatsächlich wichtigen Anwendungen (Funktionsaufrufen, Kontrollstrukturen) ab.</p>
<p>Die Priorität von &amp;&amp; und || sollte nun wirklich jeder kennen. Bei komplexeren Ausdrücken würde ich eher zeilenweise als mit Klammern trennen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355450</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355450</guid><dc:creator><![CDATA[Nexus]]></dc:creator><pubDate>Wed, 25 Sep 2013 12:44:46 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Wed, 25 Sep 2013 18:16:19 GMT]]></title><description><![CDATA[<p>Ich versuche seit kurzem binäre Operationen als Bedingungen zu vermeiden. Stattdessen gebe ich den Werten Namen:</p>
<pre><code class="language-cpp">bool isCapitalAlpha = (c &gt;= 'A' &amp;&amp; c &lt;= 'Z');
bool isOne = (c == '1');
bool isRelevant = isCapitalAlpha || isOne;
if (isRelevant)
{
	...
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2355553</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355553</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Wed, 25 Sep 2013 18:16:19 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 08:13:17 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>Ich versuche seit kurzem binäre Operationen als Bedingungen zu vermeiden. Stattdessen gebe ich den Werten Namen:</p>
<pre><code class="language-cpp">bool isCapitalAlpha = (c &gt;= 'A' &amp;&amp; c &lt;= 'Z');
bool isOne = (c == '1');
bool isRelevant = isCapitalAlpha || isOne;
if (isRelevant)
{
	...
}
</code></pre>
</blockquote>
<p>finde ich nicht gut. Wenn ich diese if sehe, schießen mir sofort zwei Fragen in den Kopf, die ich in der Zeile nicht beantworten kann.</p>
<p>1. WAS muss relevant sein?<br />
2. WIE wird dieses etwas relevant?</p>
<p>ich würde da wohl DirkBs Variante bevorzugen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355637</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355637</guid><dc:creator><![CDATA[2346257rf]]></dc:creator><pubDate>Thu, 26 Sep 2013 08:13:17 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 08:20:43 GMT]]></title><description><![CDATA[<p>2346257rf schrieb:</p>
<blockquote>
<p>TyRoXx schrieb:</p>
<blockquote>
<p>Ich versuche seit kurzem binäre Operationen als Bedingungen zu vermeiden. Stattdessen gebe ich den Werten Namen:</p>
<pre><code class="language-cpp">bool isCapitalAlpha = (c &gt;= 'A' &amp;&amp; c &lt;= 'Z');
bool isOne = (c == '1');
bool isRelevant = isCapitalAlpha || isOne;
if (isRelevant)
{
	...
}
</code></pre>
</blockquote>
<p>finde ich nicht gut. Wenn ich diese if sehe, schießen mir sofort zwei Fragen in den Kopf, die ich in der Zeile nicht beantworten kann.</p>
<p>1. WAS muss relevant sein?<br />
2. WIE wird dieses etwas relevant?</p>
<p>ich würde da wohl DirkBs Variante bevorzugen.</p>
</blockquote>
<p>Und diese Fragen kannst du dir nicht beantworten, indem du eine Zeile darüber schaust? Ich finde diese Variante sehr übersichtlich, muss aber zugeben, dass ich wohl zu faul für solch eine Variante wäre.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355638</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355638</guid><dc:creator><![CDATA[freaky]]></dc:creator><pubDate>Thu, 26 Sep 2013 08:20:43 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 09:19:26 GMT]]></title><description><![CDATA[<pre><code>if c in ['A'..'Z', '1'] then {..};
</code></pre>
<p>Der Bedingung einen Namen zu geben finde ich grundsätzlich eine gute Idee. Die Delphi Variante ist zwar kurz und übersichtlich aber nicht wirklich verständlich.</p>
<p>Warum soll <em>c</em>genau diesen Wert haben? Da würde ich doch eine kleine Hilfsfunktion schreiben, die im Namen sagt, was da eigentlich erreicht werden soll. Oder eben so, wie vorgeschlagen eine bool Variable.</p>
<p>Das Beispiel <em>isRelevant</em> sehe ich als Vorschlag. Da wir nicht wissen, was die tiefere Bedeutung dieser Abfrage ist, ist das <em>isReleveant</em> wohl der beste Vorschlag, der hier geboten werden kann. Eventuell gibt es ja eine fachliche Begründung, warum genau diese Werte erlaubt sind. Das sollte dann im Namen auftauchen. Wie die Abfrage dann technisch erfolgt, ist dann nicht wirklich relevant.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355663</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355663</guid><dc:creator><![CDATA[tntnet]]></dc:creator><pubDate>Thu, 26 Sep 2013 09:19:26 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 09:30:51 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>Ich versuche seit kurzem binäre Operationen als Bedingungen zu vermeiden. Stattdessen gebe ich den Werten Namen:</p>
<pre><code class="language-cpp">bool isCapitalAlpha = (c &gt;= 'A' &amp;&amp; c &lt;= 'Z');
bool isOne = (c == '1');
bool isRelevant = isCapitalAlpha || isOne;
if (isRelevant)
{
	...
}
</code></pre>
</blockquote>
<p>Das wird schiefgehen.<br />
Die Bezeichner wie isCapitalAlpha lassen Sachen weg. In dem Fall den Bezug zur Variablen c. Also bei zwei Variablen kracht es schon.</p>
<p>isRelevant ist übertrieben und entfernt die ENtscheidung von der folgenden Tat.</p>
<pre><code>if( isCapitalAlpha || isOne )
{
	...
}
</code></pre>
<p>ist doch in nullkommanix besser als</p>
<pre><code>if( isCapitalAlpha(c) || isOne(c) )
{
	...
}
</code></pre>
<p>, außer daß die Variable weggelassen wurde.</p>
<p>Künstliche Hilfsvariablen kann ich mir höchstens vorstellen bei so Quark wie</p>
<pre><code>if( container.find(foo)!=container.end() )
</code></pre>
<p>wo man nur der Tatsache Rechnung trägt, daß</p>
<pre><code>if( container.contains(foo) )
</code></pre>
<p>schlicht fehlt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355668</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355668</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 26 Sep 2013 09:30:51 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 09:37:28 GMT]]></title><description><![CDATA[<p>Ein anderes, objektiveres Problem ist, dass so SCE unterbunden wird.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355670</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355670</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 26 Sep 2013 09:37:28 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 09:40:27 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Ein anderes, objektiveres Problem ist, dass so SCE unterbunden wird.</p>
</blockquote>
<p>SCE?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355672</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355672</guid><dc:creator><![CDATA[volkard]]></dc:creator><pubDate>Thu, 26 Sep 2013 09:40:27 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 09:50:13 GMT]]></title><description><![CDATA[<p>Sone schrieb:</p>
<blockquote>
<p>Ein anderes, objektiveres Problem ist, dass so SCE unterbunden wird.</p>
</blockquote>
<p>Jetzt machst du das mit den obskuren &quot;Fachworten&quot; aber absichtlich! Googlesuche nach Leuten, die &quot;short-circuit evaluation&quot; als &quot;SCE&quot; abkürzen, ergibt 47 Treffer weltweit.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355673</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355673</guid><dc:creator><![CDATA[SeppJ]]></dc:creator><pubDate>Thu, 26 Sep 2013 09:50:13 GMT</pubDate></item><item><title><![CDATA[Reply to if c in [&amp;quot;A&amp;quot;..&amp;quot;Z&amp;quot;, &amp;quot;1&amp;quot;] on Thu, 26 Sep 2013 10:43:30 GMT]]></title><description><![CDATA[<p>SeppJ schrieb:</p>
<blockquote>
<p>Googlesuche nach Leuten, die &quot;short-circuit evaluation&quot; als &quot;SCE&quot; abkürzen, ergibt 47 Treffer weltweit.</p>
</blockquote>
<p>Wat? <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="😮"
    /></p>
<p>Entschuldige, ich wusste echt nicht dass die Abkuerzung so unbekannt ist!</p>
<p>Ich meinte &quot;Kurzschlussauswertung&quot;, also dass Argumente bei solchen logischen Operationen manchmal nicht ausgewertet werden muessen, wenn das Ergebnis vorher feststeht. Tyrrox' Variante erzwingt das Auswerten aller Operanden, was natuerlich nicht wuenschenswert ist.</p>
<p>Da short circuit evaluation nun mal huebsch aus drei Worten besteht, dachte ich auf die Schnelle, das ist doch bestimmt als SCE abgekuerzt. Ich entschuldige mich nochmals, und hoffe, dass nicht gleich ein shitstorm kommt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2355683</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2355683</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Thu, 26 Sep 2013 10:43:30 GMT</pubDate></item></channel></rss>