<?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[Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne)]]></title><description><![CDATA[<p>hey Leute<br />
ich bin neu hier wenn ich was falsch mache bitte sagen damit ich es verbessern kann<br />
( ich bin ein Neuling :))</p>
<p>ich habe eine Frage<br />
ich habe in der Schule ein Code bekommen vom Lehrer und soll diesen richtig interpretieren</p>
<p>&quot; if(!string[WordOffset]) &quot;<br />
{<br />
return false<br />
}</p>
<p>der string ist ein pointer als type char mit Array<br />
und der WordOffset ein int</p>
<p>und wenn ich logisch nachdenke ist es so gedacht das es eine Überprüfung ist das der char string gleich groß sein soll wie der WordOffset<br />
und wenn das der Fall ist dann gibt er false zurück wenn nicht true</p>
<p>aber wie so ist das dann nicht so geschrieben if (!string==WordOffset)</p>
<p>also ich bin leider nicht so gut im englisch aber wenn ihr eine gute deutsche Erklärung findet lese ich diese gerne wenn ihr kein Roman schreiben wollt<br />
sollte wenn's geht in deutsch oder einfaches englisch sein</p>
<p>ich bedanke mich schon in voraus für eure Tollen antworten und mit arbeit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
MFG<br />
Eurer Midu40 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/topic/328042/pointer-if-bedingung-etwas-seltsam-weil-ich-es-nicht-kenne</link><generator>RSS for Node</generator><lastBuildDate>Wed, 08 Jul 2026 16:09:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/328042.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 18 Sep 2014 16:40:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 16:40:41 GMT]]></title><description><![CDATA[<p>hey Leute<br />
ich bin neu hier wenn ich was falsch mache bitte sagen damit ich es verbessern kann<br />
( ich bin ein Neuling :))</p>
<p>ich habe eine Frage<br />
ich habe in der Schule ein Code bekommen vom Lehrer und soll diesen richtig interpretieren</p>
<p>&quot; if(!string[WordOffset]) &quot;<br />
{<br />
return false<br />
}</p>
<p>der string ist ein pointer als type char mit Array<br />
und der WordOffset ein int</p>
<p>und wenn ich logisch nachdenke ist es so gedacht das es eine Überprüfung ist das der char string gleich groß sein soll wie der WordOffset<br />
und wenn das der Fall ist dann gibt er false zurück wenn nicht true</p>
<p>aber wie so ist das dann nicht so geschrieben if (!string==WordOffset)</p>
<p>also ich bin leider nicht so gut im englisch aber wenn ihr eine gute deutsche Erklärung findet lese ich diese gerne wenn ihr kein Roman schreiben wollt<br />
sollte wenn's geht in deutsch oder einfaches englisch sein</p>
<p>ich bedanke mich schon in voraus für eure Tollen antworten und mit arbeit <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /><br />
MFG<br />
Eurer Midu40 <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418208</guid><dc:creator><![CDATA[midu40]]></dc:creator><pubDate>Thu, 18 Sep 2014 16:40:41 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 16:48:39 GMT]]></title><description><![CDATA[<p>Ehm, du solltest dir nochmal Arrays und C-Strings ansehen.<br />
Der Code ist äquivalent zu<br />
if (string[WordOffset] == 0)<br />
was das Element im Array an Position WordOffset mit 0 vergleicht.<br />
Es prüft gewissermaßen, ob der String genaus groß ist wie WordOffset, da es in C die Konvention gibt, dass String mit einer 0 am Ende abgeschlossen werden, d.h. wenn der string die Länge WordOffset hat, befindet sich an der Stelle die terminierende 0 (vorausgesetzt, weiter vorne ist keine...).<br />
Das zweite von dir macht absolut keinen Sinn.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418211</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418211</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 18 Sep 2014 16:48:39 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 16:50:30 GMT]]></title><description><![CDATA[<p>midu40 schrieb:</p>
<blockquote>
<p>&quot; if(!string[WordOffset]) &quot;<br />
{<br />
return false<br />
}</p>
<p>der string ist ein pointer als type char mit Array</p>
</blockquote>
<p>Mit der Beschreibung kann ich nichts anfangen. Poste notfalls die Deklaration.</p>
<p>Normalerweise würde ich bei einem &quot;string&quot; einen Zeiger auf char oder ein Array von char erwarten.</p>
<blockquote>
<p>und wenn ich logisch nachdenke ist es so gedacht das es eine Überprüfung ist das der char string gleich groß sein soll wie der WordOffset</p>
</blockquote>
<p>Könnte sein. Wie genau kommst du darauf?</p>
<blockquote>
<p>aber wie so ist das dann nicht so geschrieben if (!string==WordOffset)</p>
</blockquote>
<p>Das ist wenn überhaupt ein Test auf Gleichheit, kein Test auf gleiche Größe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418213</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418213</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Sep 2014 16:50:30 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 17:08:11 GMT]]></title><description><![CDATA[<p>danke für sie schnelle Antwort also<br />
wenn ich es richtig verstehe ist ein vergleich von der Größe ob string die Gleiche Größe wie WordOffset hat ( würde sinn ergeben )<br />
ich schaue mit das mit den Arrays in c an</p>
<p>eine frage ich lerne eigentlich c++ macht es ein unterschied ob es c oder c++ ist bei arrays</p>
<p>wenn Bashar nicht mit der Beschreibung nichts anfangen kann poste ich mal den ganzen Code damit Ihr auch den Verwendungszweck seht</p>
<pre><code>include &lt;iostream&gt;
#include &lt;ctype.h&gt;
#include &lt;string.h&gt;

bool GetWord(char*string, char*word, int &amp;wordOffset);

int main()
{
	const int bufferSize = 255;
	char buffer[bufferSize+1]; // enthält den ganzen Sting
	char word [bufferSize+1];  // enthält das Wort 
	int wordOffset = 0;

	std::cout &lt;&lt; &quot;Geben Sie einen String ein: &quot;;
	std::cin.getline(buffer,bufferSize);

	while (GetWord(buffer,word,wordOffset))
	{
		std::cout &lt;&lt; &quot;Dieses Wort ausgelesen: &quot; &lt;&lt; word  &lt;&lt; std::endl;
	}

	system(&quot;pause&quot;);
	return 0;
}

// Funktion zum Auslesen von wörter aus einem String.
bool GetWord(char* string, char* word, int&amp; wordOffset)
{
	if(!string[wordOffset])			//Ende den strings?
		return false;

	char *p1, *p2;
	p1 = p2 = string+wordOffset;	//zeigt auf das naechste Wort

	// beseitigt fuehrende Leerzeichen 
	for (int i = 0; i &lt;(int)strlen(p1) &amp;&amp; !isalnum(p1[0]); i++)
		p1++;

	//feststellen, ob es ein wort ergibt
	if (!isalnum(p2[0]))
		p2++;

	//p1 zeigt jetzt auf den Anfang des naechsten Wortes 
	// mit p2 auch darauf zeigen
	p2 =p1;

	//setzten p2 an das Ende des Wortes
	while(isalnum(p2[0]))
		p2++;

	//p2 ist jetzt am Ende des Wortes
	//p1 ist jetzt am Anfang des Wortes
	//Laenge des Wortes ist die Differenz 
	int len = int (p2 - p1);

	// Kopieren das Wort in den puffer
	strncpy (word,p1,len);

	//null beenden es
	word[len]='\0';

	//sucht jetzt den Anfang des naechsten Wortes

	for (int i = int (p2 - string); i&lt; (int)strlen
	(string) &amp;&amp; !isalnum(p2[0]); i++)
	p2++;

	wordOffset =int(p2-string);

	return true;
}
</code></pre>
<p>ps. wenn's unübersichtlich ist bitte sagen und Verbesserungsvorschläge machen</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418218</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418218</guid><dc:creator><![CDATA[midu40]]></dc:creator><pubDate>Thu, 18 Sep 2014 17:08:11 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 17:19:20 GMT]]></title><description><![CDATA[<p>midu40 schrieb:</p>
<blockquote>
<p>danke für sie schnelle Antwort also<br />
wenn ich es richtig verstehe ist ein vergleich von der Größe ob string die Gleiche Größe wie WordOffset hat ( würde sinn ergeben )</p>
</blockquote>
<p>Eigentlich prüft es, ob sich in string an der Stelle wordOffset ein Nullzeichen, also die Endemarkierung, befindet. Es kann sein, dass schon vorher ein Nullzeichen gestanden hat, dann ist das nicht die Länge.</p>
<blockquote>
<p>eine frage ich lerne eigentlich c++ macht es ein unterschied ob es c oder c++ ist bei arrays</p>
</blockquote>
<p>Es gibt riesige Unterschiede zwischen C und C++, aber eher darin, dass man in C++ mehr Abstraktionsmöglichkeiten hat und allgemein an Problem anders herangeht. Die Technik ist auf so niedriger Ebene wie Arrays weitestgehend identisch.</p>
<blockquote>
<p>wenn Bashar nicht mit der Beschreibung nichts anfangen kann</p>
</blockquote>
<p>Ich meinte deine Beschreibung, welchen Typ string nun haben soll. Es ist einfach ein Zeiger auf char, nicht &quot;pointer als type char mit Array&quot;.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418220</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418220</guid><dc:creator><![CDATA[Bashar]]></dc:creator><pubDate>Thu, 18 Sep 2014 17:19:20 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 17:36:50 GMT]]></title><description><![CDATA[<p>Bashar ich Entschuldige mich wenn Sie sich durch meine Antwort angegriffen fühlen. Ich bin leider ein Anfänger und deswegen könnte ich Sie nicht richtig verstehen und hab deswegen mich dazu entscheiden, gleich alles zu posten, um weiteren nachfragen zu verschonen.<br />
sorry</p>
<p>aber das mit dem null zeichen verstehe ich nicht weil der wert in der<br />
74 Zeile</p>
<pre><code>wordOffset =int(p2-string);
</code></pre>
<p>verändert wird und dadurch dürfte er immer die selbe große, am Ende, haben wie aufgenommene Zeichen in dem String ??</p>
<p>oder verstehe ich das falsch ?</p>
<p>tut mir echt leid wenn ich Sie angegriffen habe. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f61e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--disappointed_face"
      title=":("
      alt="😞"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418225</guid><dc:creator><![CDATA[midu40]]></dc:creator><pubDate>Thu, 18 Sep 2014 17:36:50 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 18:11:27 GMT]]></title><description><![CDATA[<p>midu40 schrieb:</p>
<blockquote>
<p>Bashar ich Entschuldige mich wenn Sie sich durch meine Antwort angegriffen fühlen. Ich bin leider ein Anfänger und deswegen könnte ich Sie nicht richtig verstehen und hab deswegen mich dazu entscheiden, gleich alles zu posten, um weiteren nachfragen zu verschonen.<br />
sorry</p>
</blockquote>
<p>Wir sind hier im Internet, keiner siezt hier. Und Bashar wird sich nicht angegriffen fühlen (ich übrigens auch nicht, nur für den Fall <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /> ).</p>
<blockquote>
<p>aber das mit dem null zeichen verstehe ich nicht weil der wert in der<br />
74 Zeile</p>
<pre><code>wordOffset =int(p2-string);
</code></pre>
<p>verändert wird und dadurch dürfte er immer die selbe große, am Ende, haben wie aufgenommene Zeichen in dem String ??</p>
<p>oder verstehe ich das falsch ?</p>
</blockquote>
<p>Der wordOffset erhält die Differenz zwischen p2 und string, d.h. die Position am Anfang des nächsten Wortes.<br />
Zeigt p2 auf das Ende des Strings, d.h. auf die terminierende Null, dann ist die Bedingung !string[wordOffset] beim nächsten Funktionsaufruf true, und die Schleife bricht ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418228</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 18 Sep 2014 18:11:27 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 18:23:10 GMT]]></title><description><![CDATA[<p>cool danke<br />
jetzt raffe ich das<br />
hab auch mit dem arrays nochmal nach geschaut und Zeigern<br />
also war das was ich am Anfang gefragt habe nur ein vergleich der großen<br />
bzw. die anzahl der array mit dem WordOffset als int</p>
<p>gut und das mit der terminierende null mein man eigentlich den false zustand<br />
richtig ?<br />
weil in zeile 64 wird</p>
<pre><code>word[len]='\0';
</code></pre>
<p>für die Ausgabe eine null als terminierend genommen ( wenn man das zu sagen darf fachlich )</p>
<p>deswegen war ich etwas verwirrt danke an euch<br />
das hier ist ein echt gutes Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418229</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418229</guid><dc:creator><![CDATA[midu40]]></dc:creator><pubDate>Thu, 18 Sep 2014 18:23:10 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 18:29:50 GMT]]></title><description><![CDATA[<p>midu40 schrieb:</p>
<blockquote>
<p>also war das was ich am Anfang gefragt habe nur ein vergleich der großen<br />
bzw. die anzahl der array mit dem WordOffset als int</p>
</blockquote>
<p>?</p>
<blockquote>
<p>gut und das mit der terminierende null mein man eigentlich den false zustand<br />
richtig ?</p>
</blockquote>
<p>Sie markiert das Ende vom C String, strlen bspw. läuft in einer Schleife so lange durch, bis es sie findet.</p>
<blockquote>
<p>weil in zeile 64 wird</p>
<pre><code>word[len]='\0';
</code></pre>
<p>für die Ausgabe eine null als terminierend genommen ( wenn man das zu sagen darf fachlich )</p>
</blockquote>
<p>Richtig, um das Ende zu markieren, was dann später std::cout nutzt um zu wissen, welchen Speicher es nicht mehr ausgegeben darf.</p>
<blockquote>
<p>deswegen war ich etwas verwirrt danke an euch<br />
das hier ist ein echt gutes Forum <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f642.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--slightly_smiling_face"
      title=":)"
      alt="🙂"
    /></p>
</blockquote>
<p>Trotzdem eine Bitte: Satzzeichen helfen der Lesbarkeit ungemein, genauso wie exakte Formulierung und nochmaliges Drüberlesen über die eigenen Beiträge.<br />
Ich hab nicht immer die Zeit/bin so gut gelaunt, so etwas zu verstehen versuchen.<br />
Und wer unsauber spricht, programmiert vermutlich auch so, was uns ein negatives Bild von dir von vorne herein vermittelt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418231</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418231</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Thu, 18 Sep 2014 18:29:50 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 18:52:40 GMT]]></title><description><![CDATA[<p>okay<br />
Das mit der Terminierenden Null habe ich jetzt verstanden.</p>
<p>Mit dem Großen meinte ich, dass der String in der Eingabe eine Bestimmte Menge an Arrays bearbeitet. bzw. in den Arrays den Code der Zeichen speichert.</p>
<p>Und wenn ich in WordOffset(Zahlenwert) die selbe große wie verwendete Arrays bzw. gespeicherte Zeichen anzahl habe, so weiß ich, dass ich alle wichtige Arrays, die ein Zeichen beinhalten, ausgelesen habe und kann die Schleife beenden.</p>
<p>Sonst würde die Schleife fröhlich weiter machen.</p>
<p>Das mit dem Satzzeichen und den anderen bitten, gehe ich gerne ein.<br />
Nur wenn ich es vergesse oder trotz meinen Bemühungen nicht richtig Antworten kann, bitte ich euch mich drauf hinzuweisen.</p>
<p>Und verzeiht mir, aber Trotzdem danke. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418236</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418236</guid><dc:creator><![CDATA[midu40]]></dc:creator><pubDate>Thu, 18 Sep 2014 18:52:40 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Thu, 18 Sep 2014 22:18:07 GMT]]></title><description><![CDATA[<p>Nathan schrieb:</p>
<blockquote>
<p>Trotzdem eine Bitte: Satzzeichen helfen der Lesbarkeit ungemein, genauso wie exakte Formulierung und nochmaliges Drüberlesen über die eigenen Beiträge.<br />
Ich hab nicht immer die Zeit/bin so gut gelaunt, so etwas zu verstehen versuchen.<br />
Und wer unsauber spricht, programmiert vermutlich auch so, was uns ein negatives Bild von dir von vorne herein vermittelt.</p>
</blockquote>
<p>Gut gesagt. Leider bin ich oft etwas unfreundlicher was das Thema betrifft.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418256</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418256</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Thu, 18 Sep 2014 22:18:07 GMT</pubDate></item><item><title><![CDATA[Reply to Pointer If Bedingung etwas Seltsam ( weil ich es nicht kenne) on Fri, 19 Sep 2014 06:27:54 GMT]]></title><description><![CDATA[<p>[quote=&quot;midu40&quot;]</p>
<pre><code>include &lt;iostream&gt;
#include &lt;ctype.h&gt;
#include &lt;string.h&gt;
</code></pre>
<p>Das ist Schrott. (auch wenn dein Lehrer dir dieses so gezeigt hat)<br />
Entweder C <strong>oder</strong> C++, aber nicht beides.</p>
<pre><code>bool GetWord(char*string, char*word, int &amp;wordOffset);
</code></pre>
<p>Dasselbe. C++ Referenz <strong>und</strong> C String, auch wieder Designschrott.</p>
<pre><code>for (int i = int (p2 - string); i&lt; (int)strlen
	(string) &amp;&amp; !isalnum(p2[0]); i++)
</code></pre>
<p>Schrott.<br />
int C++ Objekt völlig unnötig, sollte wohl (int)(p2-string) heißen.<br />
(int)-Cast auf strlen - ebenso Müll.</p>
<blockquote>
<p>ps. wenn's unübersichtlich ist bitte sagen und Verbesserungsvorschläge machen</p>
</blockquote>
<p>Da gäbe es vieles wenn nicht alles zu kritisieren.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2418271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2418271</guid><dc:creator><![CDATA[Wutz]]></dc:creator><pubDate>Fri, 19 Sep 2014 06:27:54 GMT</pubDate></item></channel></rss>