<?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[Suche nach der Stelle eines Buchstabens in einem char String]]></title><description><![CDATA[<p>Hallo und schönen Nachmittag liebe Gemeinde.</p>
<p>Ich wollte für folgende Problemstellung einen Programmcode erstellen:</p>
<p>Man soll einen Text kleiner als 10000 Buchstaben eingeben können. In Folge soll gefragt werden, nach welchem Buchstaben gesucht werden soll. Ausgegeben werden sollen die Stellen des Buchstabens, an welchen Stellen im eingegebenen Text der Buchstabe auftaucht.</p>
<p>Als erstes habe ich mir Gedanken gemacht, welche Funktion ich hierfür brauche. Schnell bin ich über C++ Reference zu der Funktion <code>strchr</code> gekommen. Nachdem ich mir das Beispiel angschaut habe, dachte ich mir, kapiert zu haben, wie ich es auf meine Problemstellung anzuwenden habe.</p>
<p>Daraus hat sich folgender Code entwickelt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;stdio.h&gt;
using namespace std;

int main()
{
	char String[10000];
	char *pString;
	char Buchstabe[3];

	cout &lt;&lt; &quot;Geben Sie einen String von weniger als 10000 Buchstaben ein!\n&quot;;
	gets(String);

	cout &lt;&lt; &quot;Nach welchem Buchstaben soll gesucht werden?\n &quot;;
	gets(Buchstabe);

	pString = strchr(str, Buchstabe);

	while(pString!=NULL)
	{
		cout &lt;&lt; &quot;Gefunden an &quot; &lt;&lt; pString-str+1 &lt;&lt; &quot;\n&quot;;
		pString = strchr(pString+1, Buchstabe);
	}

	return 0;
}
</code></pre>
<p>Bloß bekomme ich folgende Fehlermeldungen:</p>
<pre><code class="language-cpp">error C2065: 'str': nichtdeklarierter Bezeichner (bezieht sich auf die Zeile 18)
error C2065: 'str': nichtdeklarierter Bezeichner (bezieht sich auf die Zeile 22)
error C2665: &quot;strchr&quot;: Durch keine der 2 Überladungen konnten alle Argumenttypen konvertiert werden.(bezieht sich auf die Zeilen 18 und 23)
</code></pre>
<p>Ich dachte, dass ich mit der <code>char</code> Stringvarianten und der Einbindung der Bibliotheken <code>stdio.h</code> und <code>cstring</code> diesmal alles richtig gemacht hätte.</p>
<p>Wo liegt mein Denkfehler bzw. was habe ich falsch gemacht?</p>
<p>Danke für die Antworten im Voraus.</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312225/suche-nach-der-stelle-eines-buchstabens-in-einem-char-string</link><generator>RSS for Node</generator><lastBuildDate>Mon, 03 Aug 2026 01:05:33 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312225.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 29 Dec 2012 14:13:30 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 17:21:52 GMT]]></title><description><![CDATA[<p>Hallo und schönen Nachmittag liebe Gemeinde.</p>
<p>Ich wollte für folgende Problemstellung einen Programmcode erstellen:</p>
<p>Man soll einen Text kleiner als 10000 Buchstaben eingeben können. In Folge soll gefragt werden, nach welchem Buchstaben gesucht werden soll. Ausgegeben werden sollen die Stellen des Buchstabens, an welchen Stellen im eingegebenen Text der Buchstabe auftaucht.</p>
<p>Als erstes habe ich mir Gedanken gemacht, welche Funktion ich hierfür brauche. Schnell bin ich über C++ Reference zu der Funktion <code>strchr</code> gekommen. Nachdem ich mir das Beispiel angschaut habe, dachte ich mir, kapiert zu haben, wie ich es auf meine Problemstellung anzuwenden habe.</p>
<p>Daraus hat sich folgender Code entwickelt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;stdio.h&gt;
using namespace std;

int main()
{
	char String[10000];
	char *pString;
	char Buchstabe[3];

	cout &lt;&lt; &quot;Geben Sie einen String von weniger als 10000 Buchstaben ein!\n&quot;;
	gets(String);

	cout &lt;&lt; &quot;Nach welchem Buchstaben soll gesucht werden?\n &quot;;
	gets(Buchstabe);

	pString = strchr(str, Buchstabe);

	while(pString!=NULL)
	{
		cout &lt;&lt; &quot;Gefunden an &quot; &lt;&lt; pString-str+1 &lt;&lt; &quot;\n&quot;;
		pString = strchr(pString+1, Buchstabe);
	}

	return 0;
}
</code></pre>
<p>Bloß bekomme ich folgende Fehlermeldungen:</p>
<pre><code class="language-cpp">error C2065: 'str': nichtdeklarierter Bezeichner (bezieht sich auf die Zeile 18)
error C2065: 'str': nichtdeklarierter Bezeichner (bezieht sich auf die Zeile 22)
error C2665: &quot;strchr&quot;: Durch keine der 2 Überladungen konnten alle Argumenttypen konvertiert werden.(bezieht sich auf die Zeilen 18 und 23)
</code></pre>
<p>Ich dachte, dass ich mit der <code>char</code> Stringvarianten und der Einbindung der Bibliotheken <code>stdio.h</code> und <code>cstring</code> diesmal alles richtig gemacht hätte.</p>
<p>Wo liegt mein Denkfehler bzw. was habe ich falsch gemacht?</p>
<p>Danke für die Antworten im Voraus.</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284214</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284214</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sat, 29 Dec 2012 17:21:52 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 14:36:44 GMT]]></title><description><![CDATA[<p>Besorge dir doch endlich mal ein gutes Lernbuch anstatt Beispiele aus dem Internet ohne Sprachkenntnisse und große Hintergedanken zu übernehmen.</p>
<p>Was verstehst du an C2065 nicht?<br />
C2665 ist ein klein wenig anspruchsvoller, aber immer noch leicht. Buchstabe ist ein char-Array mit 3 Elementen. std::strchr erwartet jedoch ein int.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284224</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284224</guid><dc:creator><![CDATA[&amp;amp;#37347;&amp;amp;#12426;]]></dc:creator><pubDate>Sat, 29 Dec 2012 14:36:44 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 14:44:35 GMT]]></title><description><![CDATA[<p>In &quot;Der C++ Programmierer&quot; steht bezüglich der Funktion <code>strchr</code> ja nichts. Zumindest finde ich nichts.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284226</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sat, 29 Dec 2012 14:44:35 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 14:58:08 GMT]]></title><description><![CDATA[<p>Na, und? In dieser &quot;C++ Reference&quot;, die du erwähntest, steht sie doch. An einigen anderen zuverlässigen Internetquellen findest du sie ebenfalls beschrieben. Der Compiler meldet die akzeptierten Überladungen ebenfalls.<br />
Dass diese Funktion in dem Buch nicht behandelt wird, liegt wohl daran, dass es eine C-Funktion ist und du ja C++ lernen möchtest (std::string hat find-Methoden), auch wenn deine Lernkurve flacher als die Niederlande ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284228</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284228</guid><dc:creator><![CDATA[&amp;amp;#37347;&amp;amp;#12426;]]></dc:creator><pubDate>Sat, 29 Dec 2012 14:58:08 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 15:01:02 GMT]]></title><description><![CDATA[<p>Dort steht doch dass du in Zeile 18 eine Variable namens str benutzt hast und der Compiler nicht weiß, was das sein soll, weil du es ihm nie gesagt hast. Es fehlt sowas wie int str oder char *str oder string str oder vielleicht wolltest du pString und nicht str.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284230</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284230</guid><dc:creator><![CDATA[nwp3]]></dc:creator><pubDate>Sat, 29 Dec 2012 15:01:02 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 15:16:43 GMT]]></title><description><![CDATA[<p>Ok, das habe ich vor lauter lass mich auch mit übersehen, dass ich str nicht als Variable deklariert habe.</p>
<p>Das, was mich halt am meisten verwundert, ist die Tatsache, dass strchr nicht akzeptiert wird, obwohl ich <code>stio.h</code> und <code>cstring</code> mit eingebunden habe. Weil im Beispiel auf C++ Reference stehen die beiden Bibliotheken auch im Beispiel und <code>strchr</code> und <code>str</code> sind ohne Murren akzeptiert worden. Ich habe es ja im Vorfeld getestet...</p>
<p>Edit:</p>
<p>Hier das von mir geteste Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
#include &lt;cstring&gt;
using namespace std;

int main()
{
	char str[]=&quot;Das ist ein einfacher string&quot;;
	char *pch;

	cout &lt;&lt; &quot;Gesucht wird das 's' in &quot; &lt;&lt; str &lt;&lt; &quot;\n&quot;;

	pch = strchr(str,'s');

	while(pch!=NULL)
	{
		cout &lt;&lt; &quot;Gefunden an &quot; &lt;&lt; pch-str+1 &lt;&lt; &quot;\n&quot;;
		pch = strchr(pch+1,'s');
	}

	return 0;
}
</code></pre>
<p>Und da ist auch nicht eine Variable namens <code>str</code> mit int oder mit char* angelegt worden und es wurde auch die Funktion <code>strchr</code> nicht rot unterringelt.</p>
<p>Edit 2:</p>
<p>Muss mich für das gerade geschriebene <code>str</code> entschuldigen. Das, was im Beispiel <code>str</code> ist, ist bei mir <code>String</code> .</p>
<p>Für das, dass bei mir jedoch die Funktion <code>strchr</code> jedoch rot unterringelt ist, entschuldige ich mich jetzt nicht, da ich momentan wirklich nicht weiß, wo der Fehler ist.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284233</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284233</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sat, 29 Dec 2012 15:16:43 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 15:31:05 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Und da ist auch nicht eine Variable namens <code>str</code> mit int oder mit char* angelegt worden und es wurde auch die Funktion <code>strchr</code> nicht rot unterringelt.</p>
<p>Edit 2:</p>
<p>Muss mich für das gerade geschriebene <code>str</code> entschuldigen. Das, was im Beispiel <code>str</code> ist, ist bei mir <code>String</code> .</p>
<p>Für das, dass bei mir jedoch die Funktion <code>strchr</code> jedoch rot unterringelt ist, entschuldige ich mich jetzt nicht, da ich momentan wirklich nicht weiß, wo der Fehler ist.</p>
</blockquote>
<p>Worin unterscheiden sich die Aufrufe in den beiden Programmen?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284239</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284239</guid><dc:creator><![CDATA[manni66]]></dc:creator><pubDate>Sat, 29 Dec 2012 15:31:05 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 16:59:40 GMT]]></title><description><![CDATA[<p>manni66 schrieb:</p>
<blockquote>
<p>Worin unterscheiden sich die Aufrufe in den beiden Programmen?</p>
</blockquote>
<p>Ich sehe es im Moment nicht mehr...</p>
<p>Ich habe gedacht, dass ich alles umgeändert hätte, was relevant ist, jedoch ist die Funktion <code>strchr</code> immer noch rot unterringelt...</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;stdio.h&gt;
using namespace std;

int main()
{
	char String[10000];
	char *pString;
	char Buchstabe[3];

	cout &lt;&lt; &quot;Geben Sie einen String von weniger als 10000 Buchstaben ein!\n&quot;;
	gets(String);

	cout &lt;&lt; &quot;Nach welchem Buchstaben soll gesucht werden?\n &quot;;
	gets(Buchstabe);

	pString = strchr(String, Buchstabe);

	while(pString!=NULL)
	{
		cout &lt;&lt; &quot;Gefunden an &quot; &lt;&lt; pString-String+1 &lt;&lt; &quot;\n&quot;;
		pString = strchr(pString+1, Buchstabe);
	}

	return 0;
}
</code></pre>
<p>Zum Vergleich das Beispiel:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;stdio.h&gt;
#include &lt;cstring&gt;
using namespace std;

int main()
{
	char str[]=&quot;Das ist ein einfacher string&quot;;
	char *pch;

	cout &lt;&lt; &quot;Gesucht wird das 's' in &quot; &lt;&lt; str &lt;&lt; &quot;\n&quot;;

	pch = strchr(str,'s');

	while(pch!=NULL)
	{
		cout &lt;&lt; &quot;Gefunden an &quot; &lt;&lt; pch-str+1 &lt;&lt; &quot;\n&quot;;
		pch = strchr(pch+1,'s');
	}

	return 0;
}
</code></pre>
<p>Edit:</p>
<p>Wenn ich versuche, mit Buchstaben in Gewalt in einen int zu konvertieren, also wenn ich schreibe</p>
<pre><code class="language-cpp">char Buchstabe[3]={static_cast&lt;int&gt; (Buchstabe)};
</code></pre>
<p>dann bekomme ich die Meldung</p>
<pre><code class="language-cpp">Error: Ungültige Typumwandlung
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2284270</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284270</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sat, 29 Dec 2012 16:59:40 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 16:56:22 GMT]]></title><description><![CDATA[<p>Nach Monaten und baffzig Erläuterungen machst Du immer noch den gleichen Mist:<br />
Du benutzt char-Arrays statt std::string und strchr (das ist eine C-Funktion), anstatt der entsprechenden Methoden aus std::string ...<br />
Mich erstaunt nur noch, dass es immer noch Leute gibt, die ernsthaft zu helfen versuchen ... ich jedenfalls gebe es auf.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284271</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284271</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Sat, 29 Dec 2012 16:56:22 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 17:11:58 GMT]]></title><description><![CDATA[<p><a class="plugin-mentions-user plugin-mentions-a" href="https://www.c-plusplus.net/forum/uid/22666">@Belli</a>:</p>
<p>Schau Dir den Beitrag einmal an: <a href="http://www.c-plusplus.net/forum/312199" rel="nofollow">http://www.c-plusplus.net/forum/312199</a></p>
<p>Edit:</p>
<p>Jetzt habe ich die Lösung doch noch alleine hin bekommen:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;cstring&gt;
#include &lt;stdio.h&gt;
using namespace std;

int main()
{
	char String[10000];
	char *pString;
	int Buchstabe = 97;
	Buchstabe=static_cast&lt;char&gt; (Buchstabe);

	cout &lt;&lt; &quot;Geben Sie einen String von weniger als 10000 Buchstaben ein!\n&quot;;
	gets(String);

	cout &lt;&lt; &quot;Nach welchem Buchstaben soll gesucht werden?\n &quot;;
	cin  &gt;&gt; Buchstabe;

	pString = strchr(String, Buchstabe);

	while(pString!=NULL)
	{
		cout &lt;&lt; &quot;Gefunden an &quot; &lt;&lt; pString-String+1 &lt;&lt; &quot;\n&quot;;
		pString = strchr(pString+1, Buchstabe);
	}

	return 0;
}
</code></pre>
<p>Hat zwar bisschen gedauert, aber ihr wisst nicht wie gut das Erfolgserlebnis jetzt tut gut...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284275</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284275</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sat, 29 Dec 2012 17:11:58 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 17:10:44 GMT]]></title><description><![CDATA[<p>Und es ist immer noch erstaunlich, das du nicht den Unterschied zwischen einer einzelnen Variablen und einem Array kennst.<br />
Hättest du die Antworten aus dem von dir verlinktem Beitrag mal umgesetzt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284278</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284278</guid><dc:creator><![CDATA[DirkB]]></dc:creator><pubDate>Sat, 29 Dec 2012 17:10:44 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 17:24:22 GMT]]></title><description><![CDATA[<p>Schau den Edit an. Ich habe es doch noch hinbekommen.</p>
<p>Edit:</p>
<p>Sorry doch noch nicht.</p>
<p>Edit 2:</p>
<p>Hätte einer von euch einen letzten Tipp??</p>
<p>Wenn ich jetzt schreibe</p>
<pre><code class="language-cpp">int Buchstabe=static_cast&lt;char&gt; (Buchstabe);
</code></pre>
<p>wird im Quelltext nichts mehr rot unterringelt, aber es kommt die Meldung, &quot;Variable Buchstabe is used without initialized&quot;.</p>
<p>Wie kann ich nun die Variable Buchstabe nun so initialisieren, damit ich doch Buchstaben eingeben kann?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284280</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284280</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sat, 29 Dec 2012 17:24:22 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 17:36:19 GMT]]></title><description><![CDATA[<p>silent_max schrieb:</p>
<blockquote>
<p>Wie kann ich nun die Variable Buchstabe nun so initialisieren, damit ich doch Buchstaben eingeben kann?</p>
</blockquote>
<p>Schmeiß Dein Lehrbuch weg und kauf Dir was gescheites, wenn Du so simple Lösungen wie</p>
<pre><code>char Buchstabe;
</code></pre>
<p>nicht selber findest.</p>
<p>mfg Martin</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284283</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284283</guid><dc:creator><![CDATA[mgaeckler]]></dc:creator><pubDate>Sat, 29 Dec 2012 17:36:19 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach der Stelle eines Buchstabens in einem char String on Sat, 29 Dec 2012 23:33:10 GMT]]></title><description><![CDATA[<pre><code>int Buchstabe = 97;
    Buchstabe=static_cast&lt;char&gt; (Buchstabe);
</code></pre>
<p>ersetzen durch</p>
<pre><code>char Buchstabe;
</code></pre>
<p>Du wolltest wohl irgendwie den Typ von &quot;Buchstabe&quot; ändern. Das geht so nicht wirklich.<br />
Btw, bei strchr steht zwar, das der zweite parameter ein int ist, aber eigentlich erwartet das Ding einen char. Gibt also keinen Grund deine Variable &quot;Buchstabe zu einem int zu machen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2284364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2284364</guid><dc:creator><![CDATA[kleiner Troll]]></dc:creator><pubDate>Sat, 29 Dec 2012 23:33:10 GMT</pubDate></item></channel></rss>