<?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[Länge eines Arrays bestimmen]]></title><description><![CDATA[<p>Hallo,<br />
ich habe das Problem, dass ich es nicht schaffe die Länge (Menge der Einträge) eines Arrays festzustellen. Folgenden Ansatz habe ich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(*(x))-1)

using namespace std;

int main(){
	char test[] = &quot;Testtext&quot;;
	cout &lt;&lt; ARRAY_SIZE(test) &lt;&lt; endl;	//Das klappt problemlos

	char eingabe[] = &quot;&quot;;
	cin &gt;&gt; eingabe;
	cout &lt;&lt; ARRAY_SIZE(eingabe);		//Das klappt nicht, es wird immer 0 ausgegeben

	return 0;
}
</code></pre>
<p>Weiß jemand, wie ich das Problem lösen kann?</p>
<p>mfG, schwerminator</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/207281/länge-eines-arrays-bestimmen</link><generator>RSS for Node</generator><lastBuildDate>Sun, 11 Oct 2026 02:05:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/207281.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 05 Mar 2008 16:24:54 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Wed, 05 Mar 2008 16:24:54 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe das Problem, dass ich es nicht schaffe die Länge (Menge der Einträge) eines Arrays festzustellen. Folgenden Ansatz habe ich:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(*(x))-1)

using namespace std;

int main(){
	char test[] = &quot;Testtext&quot;;
	cout &lt;&lt; ARRAY_SIZE(test) &lt;&lt; endl;	//Das klappt problemlos

	char eingabe[] = &quot;&quot;;
	cin &gt;&gt; eingabe;
	cout &lt;&lt; ARRAY_SIZE(eingabe);		//Das klappt nicht, es wird immer 0 ausgegeben

	return 0;
}
</code></pre>
<p>Weiß jemand, wie ich das Problem lösen kann?</p>
<p>mfG, schwerminator</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468892</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468892</guid><dc:creator><![CDATA[schwerminator]]></dc:creator><pubDate>Wed, 05 Mar 2008 16:24:54 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Wed, 05 Mar 2008 16:28:27 GMT]]></title><description><![CDATA[<p>dein code ist eh kaputt</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468895</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468895</guid><dc:creator><![CDATA[oo]]></dc:creator><pubDate>Wed, 05 Mar 2008 16:28:27 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Wed, 05 Mar 2008 16:28:43 GMT]]></title><description><![CDATA[<p>sizeof() wird zur Compile-Zeit ausgewertet, deswegen funktioniert es auch nur bei Arrays deren Länge zur Compile-Zeit festgelegt ist.</p>
<p>Außerdem garantiert dir</p>
<pre><code class="language-cpp">char eingabe[] = &quot;&quot;;
cin &gt;&gt; eingabe;
</code></pre>
<p>schon fast einen Buffer-Overflow</p>
<p>Nutz lieber std::string für Strings.</p>
<p>Für andere Datentypen gibt es dann noch std::vector etc.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468896</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468896</guid><dc:creator><![CDATA[The-Kenny]]></dc:creator><pubDate>Wed, 05 Mar 2008 16:28:43 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Wed, 05 Mar 2008 16:36:28 GMT]]></title><description><![CDATA[<p>Hallo schwerminator,</p>
<p>du hast leider keine Chance an die Größe eines Arrays zu kommen.<br />
Das klappt im ersten Fall nur, weil du ein Array mit statischer Größe hast,<br />
das schon zur Kompilierzeit feststeht.</p>
<p>Außerdem greifst du an dieser Stelle auf Speicherbereich zu, den du nicht<br />
alloziiert hast:</p>
<p>schwerminator schrieb:</p>
<blockquote>
<p>char eingabe[] = &quot;&quot;;<br />
cin &gt;&gt; eingabe;<br />
cout &lt;&lt; ARRAY_SIZE(eingabe); //Das klappt nicht, es wird immer 0 ausgegeben</p>
</blockquote>
<p>btw: Dein Array ist ja wirklich 0 groß <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>EDIT: Shit! Viel zu langsam ^^</p>
<p>Gruß,<br />
CSpille</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468907</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468907</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 05 Mar 2008 16:36:28 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Wed, 05 Mar 2008 16:37:21 GMT]]></title><description><![CDATA[<p>The-Kenny schrieb:</p>
<blockquote>
<p>sizeof() wird zur Compile-Zeit ausgewertet, deswegen funktioniert es auch nur bei Arrays deren Länge zur Compile-Zeit festgelegt ist.</p>
</blockquote>
<p>Das erklärt einiges, Danke. Bzgl. des Rests des Codes muss ich mir noch einiges aneignen.</p>
<p>mfG, schwerminator</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1468911</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1468911</guid><dc:creator><![CDATA[schwerminator]]></dc:creator><pubDate>Wed, 05 Mar 2008 16:37:21 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Thu, 06 Mar 2008 12:05:39 GMT]]></title><description><![CDATA[<p>Hmm also ich bekomme das nicht auf die Reihe. Mein Ziel ist es eine Eingabe dahingehend zu überprüfen, ob es eine Zahl ist. Wenn ja wird die Zahl als float zurückgegeben, falls nicht, wird Null zurückgegeben. Ich mache das ganze aus folgendem Grund: Wenn ich die Eingabe-Variable direkt als integer deklariere und keine Ziffer eingegeben wird, stürzt das Programm ab. Deshalb muss sie irgendwie als char deklariert und eingelesen und anschließend verarbeitet werden. Mein Versuch war der folgende, der ja aber wie gesagt nicht funktioniert. Wie kann ich die Problematik lösen?</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#define ARRAY_SIZE(x) (sizeof(x)/sizeof(*(x))-1)

using namespace std;

float stringToInt(char string[]){
	char vorkomma[] = &quot;&quot;, nachkomma[] = &quot;&quot;;
	int vorkomma_int, nachkomma_int, gesamt;
	bool punkt = false;

	for(int i = 0; i &lt; ARRAY_SIZE(string); i++){
		if(isdigit(string[i]) || (string[i] == '.' &amp;&amp; punkt == false)){ 
			if(string[i] != '.'){
				if(punkt == false)
					vorkomma[ARRAY_SIZE(vorkomma)] = string[i];
				else
					nachkomma[ARRAY_SIZE(vorkomma)] = string[i];
			}
			else
				punkt = true;
		}
		else
			return 0;
	}

	return atoi(nachkomma);
}

int main(){
	char eingabe[] = &quot;&quot;;
	cin &gt;&gt; eingabe;
	cout &lt;&lt; stringToInt(eingabe);

	cin &gt;&gt; eingabe;

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1469299</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469299</guid><dc:creator><![CDATA[schwerminator]]></dc:creator><pubDate>Thu, 06 Mar 2008 12:05:39 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Thu, 06 Mar 2008 12:10:15 GMT]]></title><description><![CDATA[<p>Lies dir bitte die vorigen Beiträge nochmal durch. Insbesondere das über die Länge deines Arrays. Weiterhin solltest du in die FAQ schauen &quot;Einmal Zahl nach String und zurück&quot;<br />
<a href="http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-t-is-39488.html</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1469304</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469304</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Thu, 06 Mar 2008 12:10:15 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Thu, 06 Mar 2008 12:11:05 GMT]]></title><description><![CDATA[<p>Du hast immernoch keinen Speicher für die Eingabe reserviert. Lies die vorangegangenen Beiträge nochmal.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1469306</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469306</guid><dc:creator><![CDATA[LordJaxom]]></dc:creator><pubDate>Thu, 06 Mar 2008 12:11:05 GMT</pubDate></item><item><title><![CDATA[Reply to Länge eines Arrays bestimmen on Thu, 06 Mar 2008 14:41:26 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;limits.h&gt;

// Returns true on success. The converted value is stored in pInt.
// Returns false, if the conversion fail;
bool StrtoInt( string str, int&amp; pInt )
{
	float f;
	int m = INT_MAX;
	int n = 10;
	int i = 0;

	pInt = 0;

	while( m &gt; 0 )
	{
		m /= n;
		i++;
	}
	if ( str.length() &gt; i )
	{
		cout &lt;&lt; &quot;String too long.&quot; &lt;&lt; endl;
		return false;
	}

	f = atof(str.c_str());

	if( f &gt; INT_MAX || f &lt; INT_MIN )
	{
		cout &lt;&lt; &quot;Number out of scope.&quot; &lt;&lt; endl;
		return false;
	}

	pInt = (int)f;
	return true;
}

bool IntOnly( string str )
{
	int i = 0;
	if ( str[i] == '+' || str[i] == '-' )
	{
		if ( str.length() == 1 ) return false;
		i++;
	}
	for ( i; i&lt;str.size(); i++ )
	{
		if ( !isdigit(str[i]) )	return false;
	}
	return true;
}

int main(int argc, char *argv[])
{
 	string str;	 	
	int iInput;
	do
	{
		cout &lt;&lt; &quot;Ey Alter, gimma n Integer ein, ey !&quot; &lt;&lt; endl;
		cin &gt;&gt; str;
	}while( !IntOnly(str) );

	if ( StrtoInt(str, iInput) )
			cout &lt;&lt; iInput &lt;&lt; endl;

	getchar();
      return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1469446</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1469446</guid><dc:creator><![CDATA[hi alter ey]]></dc:creator><pubDate>Thu, 06 Mar 2008 14:41:26 GMT</pubDate></item></channel></rss>