<?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[Zahlenstring umwandeln in ein Array of Int aus den Ziffern]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich will aus einem tausendstelligen Ganzzahlstring einen Array of Int[1000] mit jeweils der entsprechenden Ziffer eingespeichert. Dazu habe ich mir folgendes Programm geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main ()
{
	char Feld[1001] = &quot;73167176531330...&quot;; // Die Zahl ist lang (1000 Ziffern)
	int Zahlenfeld[1001];

	for (int i = 0; i &lt; 1001; i++) {
		char c[1];
		c[0] = Feld[i];
		Zahlenfeld[i] = atoi(c);
	}

	for (int i = 0; i &lt; 1001; i++)
		cout &lt;&lt; Zahlenfeld[i];

}
</code></pre>
<p>Die Ausgabe ist leider nicht meine Wünschen entsprechend. Ich bekomme eine sich oft wiederholende Zahlenreihe:</p>
<pre><code>1474836472147483647214748364721474836472147483647214748364
</code></pre>
<p>und das über mehreren Seiten Terminalausgabe.</p>
<p>Es wäre nett wenn ihr mir helfen könntet.</p>
<p>Joachim</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/217685/zahlenstring-umwandeln-in-ein-array-of-int-aus-den-ziffern</link><generator>RSS for Node</generator><lastBuildDate>Sat, 10 Oct 2026 08:48:50 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/217685.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 09 Jul 2008 22:45:34 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Wed, 09 Jul 2008 22:45:34 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich will aus einem tausendstelligen Ganzzahlstring einen Array of Int[1000] mit jeweils der entsprechenden Ziffer eingespeichert. Dazu habe ich mir folgendes Programm geschrieben:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main ()
{
	char Feld[1001] = &quot;73167176531330...&quot;; // Die Zahl ist lang (1000 Ziffern)
	int Zahlenfeld[1001];

	for (int i = 0; i &lt; 1001; i++) {
		char c[1];
		c[0] = Feld[i];
		Zahlenfeld[i] = atoi(c);
	}

	for (int i = 0; i &lt; 1001; i++)
		cout &lt;&lt; Zahlenfeld[i];

}
</code></pre>
<p>Die Ausgabe ist leider nicht meine Wünschen entsprechend. Ich bekomme eine sich oft wiederholende Zahlenreihe:</p>
<pre><code>1474836472147483647214748364721474836472147483647214748364
</code></pre>
<p>und das über mehreren Seiten Terminalausgabe.</p>
<p>Es wäre nett wenn ihr mir helfen könntet.</p>
<p>Joachim</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1544631</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544631</guid><dc:creator><![CDATA[jo_arbeitet_an_Problem10]]></dc:creator><pubDate>Wed, 09 Jul 2008 22:45:34 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Wed, 09 Jul 2008 22:50:56 GMT]]></title><description><![CDATA[<p>Eklig:</p>
<pre><code class="language-cpp">char Feld[1001] = &quot;73167176531330&quot;; // Die Zahl ist lang (1000 Ziffern)
    int Zahlenfeld[1001];

	for(int i = 0; i &lt; 1001;i++)
	{
		Zahlenfeld[i] = static_cast&lt;int&gt;(Feld[i]) - static_cast&lt;int&gt;('0');
	}

	for(int i = 0; i &lt; 1001;i++)
	{
		std::cout &lt;&lt; Zahlenfeld[i];
	}
</code></pre>
<p>Gut:<br />
<a href="http://www.boost.org/doc/libs/1_35_0/libs/conversion/lexical_cast.htm" rel="nofollow">http://www.boost.org/doc/libs/1_35_0/libs/conversion/lexical_cast.htm</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1544636</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544636</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Wed, 09 Jul 2008 22:50:56 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 09:30:47 GMT]]></title><description><![CDATA[<p>Oder einfach:</p>
<pre><code class="language-cpp">for(int i = 0; i &lt; 1001; ++i)
{
     std::stringstream str;
     str &lt;&lt; Feld[i];
     str &gt;&gt; Zahlenfeld[i];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1544824</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544824</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Thu, 10 Jul 2008 09:30:47 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 09:39:10 GMT]]></title><description><![CDATA[<p>Oder (um sich das ständige konstruieren/destruieren zu sparen):</p>
<pre><code class="language-cpp">std::stringstream sstream;

for (int i = 0; i &lt; 1001; i++) {
	sstream.clear();
	sstream &lt;&lt; Feld[ i ];
	sstream &gt;&gt; Zahlenfeld[ i ];
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1544833</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544833</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 10 Jul 2008 09:39:10 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 09:44:30 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>Oder (um sich das ständige konstruieren/destruieren zu sparen):</p>
<pre><code class="language-cpp">std::stringstream sstream;

for (int i = 0; i &lt; 1001; i++) {
	sstream.clear();
	sstream &lt;&lt; Feld[ i ];
	sstream &gt;&gt; Zahlenfeld[ i ];
}
</code></pre>
</blockquote>
<p>Eigentlich OK....</p>
<p>Aber: Was passiert, wenn Feld mal was anderes als '0'...'9' enthält ?<br />
(Antwort: Nicht das richtige...)</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1544838</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544838</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Thu, 10 Jul 2008 09:44:30 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 09:49:29 GMT]]></title><description><![CDATA[<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Aber: Was passiert, wenn Feld mal was anderes als '0'...'9' enthält ?<br />
(Antwort: Nicht das richtige...)</p>
</blockquote>
<p>Da das aber nicht Inhalt der Fragestellung war muss man sich, wenn man nicht der Fragesteller selbst ist, dahingehend keinen Kopf drum machen, nicht?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1544843</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544843</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 10 Jul 2008 09:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 09:51:24 GMT]]></title><description><![CDATA[<p>David_pb schrieb:</p>
<blockquote>
<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Aber: Was passiert, wenn Feld mal was anderes als '0'...'9' enthält ?<br />
(Antwort: Nicht das richtige...)</p>
</blockquote>
<p>Da das aber nicht Inhalt der Fragestellung war muss man sich, wenn man nicht der Fragesteller selbst ist, dahingehend keinen Kopf drum machen, nicht?</p>
</blockquote>
<p>Rüchtüg!</p>
<p>Aber: <em>Expect the unexpected</em></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1544845</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544845</guid><dc:creator><![CDATA[bladerunner10]]></dc:creator><pubDate>Thu, 10 Jul 2008 09:51:24 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 09:57:42 GMT]]></title><description><![CDATA[<p>bladerunner10 schrieb:</p>
<blockquote>
<p>Aber: <em>Expect the unexpected</em></p>
</blockquote>
<p>Sehr gute Einstellung! <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="😉"
    /> Aber man will ja auch möglichst simpel bleiben und keine überladenen Codemonster als Beispiel posten.<br />
Aber grundlegend hast du natürlich recht!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1544851</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1544851</guid><dc:creator><![CDATA[David_pb]]></dc:creator><pubDate>Thu, 10 Jul 2008 09:57:42 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 12:26:57 GMT]]></title><description><![CDATA[<p>jo_arbeitet_an_Problem10 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;exception&gt;

using namespace std;

int main ()
{
	char Feld[1001] = &quot;73167176531330...&quot;; // Die Zahl ist lang (1000 Ziffern)
	int Zahlenfeld[1001]; //warum 1001? willst du das terminierungs-Byte auch mit? aber ich habs ma so genommen um die felder mit ptr bequem durchzugehen ^^

char *ptr_char = Feld;
int * const last_int = Zahlenfeld[1000];
	for (int *ptr (Zahlenfeld); ptr != last_int; ++ptr, ++ptr_char)
           {
                       *ptr = *ptr_char - '0'; //kommen halt komische Werte rein, wenn andere Buchstaben als 0...9 drin hat, deshalb _vll_ so:
                       switch (*ptr_char)
                         {
                           case '0': *ptr = 0; break;
                           case '1': *ptr = 1; break;
                           case '2': *ptr = 2; break;
                           case '3': *ptr = 3; break;
                           case '4': *ptr = 4; break;
                           case '5': *ptr = 5; break;
                           case '6': *ptr = 6; break;
                           case '7': *ptr = 7; break;
                           case '8': *ptr = 8; break;
                           case '9': *ptr = 9; break;
                           default: throw std::invalid_argument (&quot;ungültiger string&quot;); //kann mich mit invalid_argument auch irren - halt ich so gar für sehr wahrscheinlich ^^
                         }
	}

	for (int *i (Zahlenfeld); i != last_int; ++i)
		cout &lt;&lt; *i;

}
</code></pre>
</blockquote>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1545000</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1545000</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Thu, 10 Jul 2008 12:26:57 GMT</pubDate></item><item><title><![CDATA[Reply to Zahlenstring umwandeln in ein Array of Int aus den Ziffern on Thu, 10 Jul 2008 14:02:20 GMT]]></title><description><![CDATA[<p>jo_arbeitet_an_Problem10 schrieb:</p>
<blockquote>
<pre><code class="language-cpp">#include &lt;iostream&gt;

using namespace std;

int main ()
{
	char Feld[1001] = &quot;73167176531330...&quot;; // Die Zahl ist lang (1000 Ziffern)
	int Zahlenfeld[1001];

	for (int i = 0; i &lt; 1001; i++) {
		char c[1];
		c[0] = Feld[i];
		Zahlenfeld[i] = atoi(c);
	}

	for (int i = 0; i &lt; 1001; i++)
		cout &lt;&lt; Zahlenfeld[i];

}
</code></pre>
<p>Die Ausgabe ist leider nicht meine Wünschen entsprechend.</p>
</blockquote>
<p>Hallo Joachim,</p>
<p>der Fehler liegt wohl darin, dass das Array c[] nur ein Zeichen lang ist und keine abschließende '\0' enthält. Korrekt wäre demnach:</p>
<pre><code class="language-cpp">char c[2];
    c[1] = char(0); // Textende setzen
    for (int i = 0; i &lt; 1001; i++) {
        c[0] = Feld[i];
        Zahlenfeld[i] = atoi(c);
    }
</code></pre>
<p>Eleganter (und schneller!?) geht es mit den Mitteln, die der C++-Standard bietet:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;algorithm&gt;  // transform, copy
#include &lt;functional&gt; // bind2nd, minus
#include &lt;iterator&gt;   // ostream_iterator

int main()
{
    using namespace std;
    char Feld[] = &quot;73167176531330&quot;; // Die Zahl ist lang (1000 Ziffern)
    const size_t N = sizeof(Feld)-1;
    int Zahlenfeld[N];
    transform( Feld, Feld + N, Zahlenfeld, bind2nd( minus&lt; int &gt;(), int('0') ) );
    // --  Ausgabe
    copy( Zahlenfeld, Zahlenfeld + N, ostream_iterator&lt; int &gt;( cout ) );
    cout &lt;&lt; endl;
    return 0;
}
</code></pre>
<p>Gruß<br />
Werner</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1545074</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1545074</guid><dc:creator><![CDATA[Werner Salomon]]></dc:creator><pubDate>Thu, 10 Jul 2008 14:02:20 GMT</pubDate></item></channel></rss>