<?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[Probleme beim berechnen von Quersumme!]]></title><description><![CDATA[<p>Hiho</p>
<p>Ich hätte gerne gewusst, wie ich aus einem char- Array, gefüllt mit Zahlen, die Quersumme ausrechne?</p>
<p>Habe bis jetzt folgenden Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;stdlib.h&gt;

int main ()
{
	char Buffer[20];
	int zaehler = 0;
	int quersumme;
	std::cout&lt;&lt; &quot;Geben Sie eine Zahl ein: &quot; &lt;&lt; std::flush;
	std::cin.get(Buffer, sizeof(Buffer));

	while(Buffer[zaehler] != '\0')
	{
		quersumme += atoi(Buffer[zaehler]);
		zaehler ++;
	}

	std::cout &lt;&lt; &quot;Die Quersumme der eingegebenen Zahl betraegt: &quot; &lt;&lt; quersumme &lt;&lt; std::endl;
}
</code></pre>
<p>Er meint das etwas mit der Konvertierung von char zu const char nicht stimmt :S</p>
<p>Bin noch Anfänger, was mache ich falsch? Hoffe auf Hilfe</p>
<p>Timo</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178345/probleme-beim-berechnen-von-quersumme</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 20:34:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178345.rss" rel="self" type="application/rss+xml"/><pubDate>Tue, 10 Apr 2007 14:52:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Probleme beim berechnen von Quersumme! on Tue, 10 Apr 2007 14:52:41 GMT]]></title><description><![CDATA[<p>Hiho</p>
<p>Ich hätte gerne gewusst, wie ich aus einem char- Array, gefüllt mit Zahlen, die Quersumme ausrechne?</p>
<p>Habe bis jetzt folgenden Code:</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;stdlib.h&gt;

int main ()
{
	char Buffer[20];
	int zaehler = 0;
	int quersumme;
	std::cout&lt;&lt; &quot;Geben Sie eine Zahl ein: &quot; &lt;&lt; std::flush;
	std::cin.get(Buffer, sizeof(Buffer));

	while(Buffer[zaehler] != '\0')
	{
		quersumme += atoi(Buffer[zaehler]);
		zaehler ++;
	}

	std::cout &lt;&lt; &quot;Die Quersumme der eingegebenen Zahl betraegt: &quot; &lt;&lt; quersumme &lt;&lt; std::endl;
}
</code></pre>
<p>Er meint das etwas mit der Konvertierung von char zu const char nicht stimmt :S</p>
<p>Bin noch Anfänger, was mache ich falsch? Hoffe auf Hilfe</p>
<p>Timo</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263056</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263056</guid><dc:creator><![CDATA[DerMitDemBärTanzt]]></dc:creator><pubDate>Tue, 10 Apr 2007 14:52:41 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim berechnen von Quersumme! on Tue, 10 Apr 2007 15:22:37 GMT]]></title><description><![CDATA[<ol>
<li></li>
</ol>
<p>Variablen <strong>immer</strong> initialisieren:</p>
<pre><code class="language-cpp">int quersumme = 0;
</code></pre>
<p>Hier führt das zwar _nur_ zu zufälligen Ergebnissen, bei Arrays und so weiter kann das aber böse enden.</p>
<ol start="2">
<li></li>
</ol>
<p>Der Kompiler hat recht atoi() will einen const char*, also musst du auch einen const char* übergeben:</p>
<pre><code class="language-cpp">char ch[2];
ch[0] = Buffer[zaehler];
ch[1] = '\0';
quersumme += atoi(ch);
zaehler ++;
</code></pre>
<p>// edit: so funktioniert es.</p>
<p>Zum Schluß ein Tipp:<br />
Benutze std::string, da macht man weniger Fehler.</p>
<p>Gruß<br />
Don06</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263069</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263069</guid><dc:creator><![CDATA[Don06]]></dc:creator><pubDate>Tue, 10 Apr 2007 15:22:37 GMT</pubDate></item><item><title><![CDATA[Reply to Probleme beim berechnen von Quersumme! on Tue, 10 Apr 2007 15:21:34 GMT]]></title><description><![CDATA[<p>Die Funktion die du benutzt, also atoi() ist für Strings(also Zeichenketten) ausgelegt und nicht für einzelne chars.<br />
Hier haste nen paar Infos zu atoi: <a href="http://www.xon.de/x1/x1ref/index.html?html_atoi.htm" rel="nofollow">http://www.xon.de/x1/x1ref/index.html?html_atoi.htm</a></p>
<p>Um dein Problem zu lösen würd ich folgendes machen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstdlib&gt;
#include &lt;stdlib.h&gt;

int main ()
{
    char Buffer[20] = {'\0'};//Dann ist jeder char von Buffer = '\0' -&gt; Das ist sichere für die Schleife unten
    int zaehler = 0;
    int quersumme = 0;
    std::cout&lt;&lt; &quot;Geben Sie eine Zahl ein: &quot; &lt;&lt; std::flush;
    std::cin.get(Buffer, sizeof(Buffer));

    while(Buffer[zaehler] != '\0')
    {
        quersumme = quersumme + int(Buffer[zaehler]) - 48; //Das int() könnte man auch weglassen
        zaehler ++;
    }

    std::cout &lt;&lt; &quot;Die Quersumme der eingegebenen Zahl betraegt: &quot; &lt;&lt; quersumme &lt;&lt; std::endl;
}
</code></pre>
<p>Der Trick ist halt- jedes Zeichen hat ein ASCII-Code(Tabelle gibts hier: <a href="http://www.torsten-horn.de/techdocs/ascii.htm" rel="nofollow">http://www.torsten-horn.de/techdocs/ascii.htm</a>)<br />
So wenn man nun mit chars rechnet, dann rechnet man mit ihren ASCII-Codes (sind ja Zahlen).<br />
Damit man nun herausbekommt welche Ziffer sich hinter dem Charzeichen befinden, damit man sie in einen integer packen kann zieht man einfach 48 (ist der Code für '0') ab und durch diese Differenz hat man den Wert für die Integervariable heraus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1263074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1263074</guid><dc:creator><![CDATA[Pille456]]></dc:creator><pubDate>Tue, 10 Apr 2007 15:21:34 GMT</pubDate></item></channel></rss>