<?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[String Probleme]]></title><description><![CDATA[<p>Hallo, ich arbeite gerade an dem Buch &quot;Der C++ Programmierer&quot;!<br />
Bei der Übung 1.11 hab ich leider Probleme den Code zu verstehen.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int main() {
	const string str{ &quot;17462309&quot; }; // aus Aufgabentext
	long int z = 0L;
	for (auto zeichen : str) {
		z *= 10;
		z += static_cast&lt;int&gt;(zeichen) - static_cast&lt;int&gt;('0');
	}
	cout &lt;&lt; &quot;z = &quot; &lt;&lt; z;
	int quersumme{};
	while (z &gt; 0) {
		quersumme += z % 10;
		z /= 10;
	}
	cout &lt;&lt; &quot;   Quersumme = &quot; &lt;&lt; quersumme &lt;&lt; '\n';
	system(&quot;pause&quot;);
	return 0;
}
</code></pre>
<p>Meine Fragen:</p>
<pre><code>for (auto zeichen : str) {
		z *= 10;
		z += static_cast&lt;int&gt;(zeichen) - static_cast&lt;int&gt;('0');
	}
</code></pre>
<p>1. Ich hab probiert den : durch ein = zu ersetzen, geht nicht. Im Internet hab ich dazu leider nichts gefunden - was macht dieser : und wofür steht dieser Ausdruck?<br />
2. warum multipliziere ich die Variabel z mit 10?<br />
3. mit static.cast&lt;int&gt;(zeichen) wandel ich den string zeichen in einen Int-Wert, wofür muss ich davon static_cast&lt;int&gt;('0'); subtrahieren?</p>
<pre><code>while (z &gt; 0) {
		quersumme += z % 10;
		z /= 10;
	}
</code></pre>
<p>1. Auch hier verstehe ich die Berechnungen nicht, wieso verwende ich Modulu 10 etc.?</p>
<p>Ich habe versucht mir die Fragen selbst zu beantworten, leider bin ich zu keiner Lösung gekommen!</p>
<p>lg Brail</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/336675/string-probleme</link><generator>RSS for Node</generator><lastBuildDate>Sun, 19 Apr 2026 00:03:06 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/336675.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 09 Feb 2016 14:08:35 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to String Probleme on Tue, 09 Feb 2016 14:08:35 GMT]]></title><description><![CDATA[<p>Hallo, ich arbeite gerade an dem Buch &quot;Der C++ Programmierer&quot;!<br />
Bei der Übung 1.11 hab ich leider Probleme den Code zu verstehen.</p>
<pre><code>#include &lt;iostream&gt;
using namespace std;

int main() {
	const string str{ &quot;17462309&quot; }; // aus Aufgabentext
	long int z = 0L;
	for (auto zeichen : str) {
		z *= 10;
		z += static_cast&lt;int&gt;(zeichen) - static_cast&lt;int&gt;('0');
	}
	cout &lt;&lt; &quot;z = &quot; &lt;&lt; z;
	int quersumme{};
	while (z &gt; 0) {
		quersumme += z % 10;
		z /= 10;
	}
	cout &lt;&lt; &quot;   Quersumme = &quot; &lt;&lt; quersumme &lt;&lt; '\n';
	system(&quot;pause&quot;);
	return 0;
}
</code></pre>
<p>Meine Fragen:</p>
<pre><code>for (auto zeichen : str) {
		z *= 10;
		z += static_cast&lt;int&gt;(zeichen) - static_cast&lt;int&gt;('0');
	}
</code></pre>
<p>1. Ich hab probiert den : durch ein = zu ersetzen, geht nicht. Im Internet hab ich dazu leider nichts gefunden - was macht dieser : und wofür steht dieser Ausdruck?<br />
2. warum multipliziere ich die Variabel z mit 10?<br />
3. mit static.cast&lt;int&gt;(zeichen) wandel ich den string zeichen in einen Int-Wert, wofür muss ich davon static_cast&lt;int&gt;('0'); subtrahieren?</p>
<pre><code>while (z &gt; 0) {
		quersumme += z % 10;
		z /= 10;
	}
</code></pre>
<p>1. Auch hier verstehe ich die Berechnungen nicht, wieso verwende ich Modulu 10 etc.?</p>
<p>Ich habe versucht mir die Fragen selbst zu beantworten, leider bin ich zu keiner Lösung gekommen!</p>
<p>lg Brail</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2486404</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2486404</guid><dc:creator><![CDATA[Brail]]></dc:creator><pubDate>Tue, 09 Feb 2016 14:08:35 GMT</pubDate></item><item><title><![CDATA[Reply to String Probleme on Tue, 09 Feb 2016 15:32:21 GMT]]></title><description><![CDATA[<p>Brail schrieb:</p>
<blockquote>
<p>1. Ich hab probiert den : durch ein = zu ersetzen,</p>
</blockquote>
<p>Warum?</p>
<p>Brail schrieb:</p>
<blockquote>
<p>geht nicht.</p>
</blockquote>
<p>Das ist nicht wirklich überraschend</p>
<p>Brail schrieb:</p>
<blockquote>
<p>Im Internet hab ich dazu leider nichts gefunden - was macht dieser : und wofür steht dieser Ausdruck?</p>
</blockquote>
<p>Das ist eine range based for loop - und ich gehe davon aus, dass dies im Buch auch erklärt wird</p>
<p>Brail schrieb:</p>
<blockquote>
<p>2. warum multipliziere ich die Variabel z mit 10?</p>
</blockquote>
<p>Führe den Algorithmus mit einem Debugger oder auf einem Blatt Papier aus, dann siehst du es.</p>
<p>Brail schrieb:</p>
<blockquote>
<p>3. mit static.cast&lt;int&gt;(zeichen) wandel ich den string zeichen in einen Int-Wert, wofür muss ich davon static_cast&lt;int&gt;('0'); subtrahieren?</p>
</blockquote>
<p>Welchen Wert hat</p>
<ol>
<li>static.cast&lt;int&gt;(zeichen)</li>
<li>static_cast&lt;int&gt;('0')</li>
<li>static.cast&lt;int&gt;(zeichen) - static_cast&lt;int&gt;('0')<br />
?</li>
</ol>
<p>Brail schrieb:</p>
<blockquote>
<p>1. Auch hier verstehe ich die Berechnungen nicht, wieso verwende ich Modulu 10 etc.?</p>
</blockquote>
<p>Führe den Algorithmus mit einem Debugger oder auf einem Blatt Papier aus, dann siehst du es.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2486411</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2486411</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 09 Feb 2016 15:32:21 GMT</pubDate></item><item><title><![CDATA[Reply to String Probleme on Tue, 09 Feb 2016 15:49:41 GMT]]></title><description><![CDATA[<p>Hallo manni, danke erstmal für deine Antwort.</p>
<p>Warum?<br />
Weil ich mit dem Zeichen nichts anfangen konnte und ich etwas herumprobiert habe.<br />
Für mich, weitaus mehr überraschend als für dich.<br />
Range based for loop, hab ich leider noch nie gehört und auch im Buch nicht gefunden. Generell hab ich bis zu der Übung davon auch im Buch nichts gelesen - evtl. ging das an mir vorbei. (Auch auto wurde davor nie erwähnt)</p>
<p>Welchen Wert hat</p>
<ol>
<li>static.cast&lt;int&gt;(zeichen)</li>
<li>static_cast&lt;int&gt;('0')</li>
<li>static.cast&lt;int&gt;(zeichen) - static_cast&lt;int&gt;('0')<br />
?<br />
Auch das weiß ich nicht.</li>
</ol>
<p>Trotzdem danke, werd schon noch dahinter kommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2486414</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2486414</guid><dc:creator><![CDATA[Brail]]></dc:creator><pubDate>Tue, 09 Feb 2016 15:49:41 GMT</pubDate></item><item><title><![CDATA[Reply to String Probleme on Tue, 09 Feb 2016 16:00:31 GMT]]></title><description><![CDATA[<p>Brail schrieb:</p>
<blockquote>
<p>Range based for loop, hab ich leider noch nie gehört und auch im Buch nicht gefunden. Generell hab ich bis zu der Übung davon auch im Buch nichts gelesen - evtl. ging das an mir vorbei. (Auch auto wurde davor nie erwähnt)</p>
</blockquote>
<p>Ich kenne das Buch nicht, sollten darin aber tatsächlich solche Dinge ohne Erklärung vom Himmel fallen, würde ich es nicht weiter benutzen.</p>
<p>Brail schrieb:</p>
<blockquote>
<p>Welchen Wert hat</p>
<ol>
<li>static.cast&lt;int&gt;(zeichen)</li>
<li>static_cast&lt;int&gt;('0')</li>
<li>static.cast&lt;int&gt;(zeichen) - static_cast&lt;int&gt;('0')<br />
?<br />
Auch das weiß ich nicht.</li>
</ol>
</blockquote>
<p>Dass du es nicht spontan weißt, habe ich angenommen. Ändere das Programm so ab, dass es die Werte ausgibt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2486418</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2486418</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Tue, 09 Feb 2016 16:00:31 GMT</pubDate></item><item><title><![CDATA[Reply to String Probleme on Tue, 09 Feb 2016 16:46:43 GMT]]></title><description><![CDATA[<p>Brail schrieb:</p>
<blockquote>
<p>Range based for loop, hab ich leider noch nie gehört und auch im Buch nicht gefunden. Generell hab ich bis zu der Übung davon auch im Buch nichts gelesen - evtl. ging das an mir vorbei. (Auch auto wurde davor nie erwähnt)</p>
</blockquote>
<p>Die Ranged based for Loop steht Kapitel <em>1.9.5 Container und Schleifen</em> und <code>auto</code> in Kapitel <em>1.9.6 Typermittlung mit auto</em>. Etwas blöd das es nicht vor der Aufgabe kommt, aber es sind tatsächlich die beiden Kapitel direkt nach der Aufgabenstellung...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2486422</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2486422</guid><dc:creator><![CDATA[sebi707]]></dc:creator><pubDate>Tue, 09 Feb 2016 16:46:43 GMT</pubDate></item></channel></rss>