<?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 Wörtern in einem String]]></title><description><![CDATA[<p>Hallo und guten Abend liebe Gemeinde.</p>
<p>Wir haben eine neue Aufgabe zu geschickt bekommen:<br />
<code>Schreiben Sie ein Programm, das ausgibt, an welchen Stellen eines Textes ein über die Tastatur eingegebens Wort vorkommt.</code></p>
<p>Da ich vor ein paar Tagen ein ähnliches Programm geschrieben habe, habe ich mich an folgenden Code errinnert:</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;

		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>Nun wollte ich das Programm so umschreiben, dass es statt den Buchstaben nach dem eingegebenen Wort sucht.</p>
<p>Folgenden Code habe ich aufgesetzt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cstdio&gt;
using namespace std;

int main()
{
	char String[100000];
	char *pString;
	char Wort[256];

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

	cout &lt;&lt; &quot;Nach welchem Wort soll gesucht werden?\n&quot;;
	cin.getline(Wort, 256);

	pString = strchr(String, Wort);

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

	return 0;
}
</code></pre>
<p>Im umgeschriebenen Code wird jedoch die Funktion <code>strchr</code> rot unterringelt mit der Meldung <code>Error: Keine Instanz von Überladenen Funktionen &quot;strchr&quot; stimmt mit der Argumentenliste überein.</code></p>
<p>Gibt es denn eine ander Alternative bzw. einen anderen Lösungsweg?? Bzw. wo ist mein Denkfehler??</p>
<p>Vielen Dank für die Antworten im Voraus.</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/312762/suche-nach-wörtern-in-einem-string</link><generator>RSS for Node</generator><lastBuildDate>Sun, 02 Aug 2026 17:50:32 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/312762.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 13 Jan 2013 18:46:06 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Sun, 13 Jan 2013 18:46:06 GMT]]></title><description><![CDATA[<p>Hallo und guten Abend liebe Gemeinde.</p>
<p>Wir haben eine neue Aufgabe zu geschickt bekommen:<br />
<code>Schreiben Sie ein Programm, das ausgibt, an welchen Stellen eines Textes ein über die Tastatur eingegebens Wort vorkommt.</code></p>
<p>Da ich vor ein paar Tagen ein ähnliches Programm geschrieben habe, habe ich mich an folgenden Code errinnert:</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;

		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>Nun wollte ich das Programm so umschreiben, dass es statt den Buchstaben nach dem eingegebenen Wort sucht.</p>
<p>Folgenden Code habe ich aufgesetzt:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cstdio&gt;
using namespace std;

int main()
{
	char String[100000];
	char *pString;
	char Wort[256];

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

	cout &lt;&lt; &quot;Nach welchem Wort soll gesucht werden?\n&quot;;
	cin.getline(Wort, 256);

	pString = strchr(String, Wort);

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

	return 0;
}
</code></pre>
<p>Im umgeschriebenen Code wird jedoch die Funktion <code>strchr</code> rot unterringelt mit der Meldung <code>Error: Keine Instanz von Überladenen Funktionen &quot;strchr&quot; stimmt mit der Argumentenliste überein.</code></p>
<p>Gibt es denn eine ander Alternative bzw. einen anderen Lösungsweg?? Bzw. wo ist mein Denkfehler??</p>
<p>Vielen Dank für die Antworten im Voraus.</p>
<p>Gruß</p>
<p>Max</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2289364</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289364</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sun, 13 Jan 2013 18:46:06 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Sun, 13 Jan 2013 18:51:23 GMT]]></title><description><![CDATA[<p><a href="http://www.cplusplus.com/reference/cstring/strstr/" rel="nofollow">http://www.cplusplus.com/reference/cstring/strstr/</a><br />
btw: std::string?<br />
Und es muss cstdio heißen, wie bei cstring.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2289368</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289368</guid><dc:creator><![CDATA[Nathan]]></dc:creator><pubDate>Sun, 13 Jan 2013 18:51:23 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Sun, 13 Jan 2013 18:53:02 GMT]]></title><description><![CDATA[<p>wieso denn auf einmal wieder c-strings? mit std::string geht das so schön einfach...<br />
<a href="http://en.cppreference.com/w/cpp/string/basic_string/find" rel="nofollow">http://en.cppreference.com/w/cpp/string/basic_string/find</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/2289369</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289369</guid><dc:creator><![CDATA[vario-500]]></dc:creator><pubDate>Sun, 13 Jan 2013 18:53:02 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Sun, 13 Jan 2013 18:53:06 GMT]]></title><description><![CDATA[<p>strchr sucht einen Buchstaben, wenn du einen String suchen willst nimm strstr. Abgesehen davon sind da natürlich ohne Ende Stilfehler drin, aber die wurden dir schon 1000 mal vorgekaut.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2289370</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289370</guid><dc:creator><![CDATA[cooky451]]></dc:creator><pubDate>Sun, 13 Jan 2013 18:53:06 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Sun, 13 Jan 2013 18:54:32 GMT]]></title><description><![CDATA[<blockquote>
<p>Gibt es denn eine ander Alternative bzw. einen anderen Lösungsweg?? Bzw. wo ist mein Denkfehler??</p>
</blockquote>
<p>Jetzt mal ehrlich, was ist los mit dir? Statt einfach <code>strchr</code> zu googlen, zu verstehen was es überhaupt macht und dann - wie schon zig mal erklärt - einfach <code>std::string</code> zu nehmen, kommst du hier an und verlangst Hilfe.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2289371</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289371</guid><dc:creator><![CDATA[Sone]]></dc:creator><pubDate>Sun, 13 Jan 2013 18:54:32 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Sun, 13 Jan 2013 19:00:28 GMT]]></title><description><![CDATA[<p>cooky451 schrieb:</p>
<blockquote>
<p>strchr sucht einen Buchstaben, wenn du einen String suchen willst nimm strstr. Abgesehen davon sind da natürlich ohne Ende Stilfehler drin, aber die wurden dir schon 1000 mal vorgekaut.</p>
</blockquote>
<p>Danke für den Tipp. Jetzt hat es geklappt.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2289373</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289373</guid><dc:creator><![CDATA[silent_max]]></dc:creator><pubDate>Sun, 13 Jan 2013 19:00:28 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Mon, 14 Jan 2013 07:34:03 GMT]]></title><description><![CDATA[<p>Und mal wieder:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cstdio&gt;
using namespace std;

int main()
{
	// char String[100000]; Nein!
        string String;
	// char *pString; Nein!
	// char Wort[256]; Nein!
        string wort;

	cout &lt;&lt; &quot;Geben Sie einen Text von weniger als 100000 Buchstaben ein!\n&quot;;
	// gets(String); NEIN, NIE; NIMMER!
        std::getline(std::cin, String);

	cout &lt;&lt; &quot;Nach welchem Wort soll gesucht werden?\n&quot;;
	// cin.getline(Wort, 256); Besser, aber hier: Nein!
        std::getline(std::cin, wort);

	// pString = strchr(String, Wort); Nöööö.
        size_t pos = String.find(wort);

	while(pos != string::npos)
	{
		cout &lt;&lt; &quot;Gefunden an &quot; &lt;&lt; pos &lt;&lt; &quot;\n&quot;;
		pos = String.find(wort, pos + 1);
	}

	return 0;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2289436</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289436</guid><dc:creator><![CDATA[Ethon]]></dc:creator><pubDate>Mon, 14 Jan 2013 07:34:03 GMT</pubDate></item><item><title><![CDATA[Reply to Suche nach Wörtern in einem String on Mon, 14 Jan 2013 07:44:12 GMT]]></title><description><![CDATA[<p>Ethon schrieb:</p>
<blockquote>
<p>Und mal wieder:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
#include &lt;string&gt;
#include &lt;cstdio&gt;
using namespace std;

int main()
{
	// char String[100000]; Nein!
        string String;
	// char *pString; Nein!
	// char Wort[256]; Nein!
        string wort;

        //und so weiter ...
</code></pre>
</blockquote>
<p>Perlen vor die Säue ...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2289439</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2289439</guid><dc:creator><![CDATA[Belli]]></dc:creator><pubDate>Mon, 14 Jan 2013 07:44:12 GMT</pubDate></item></channel></rss>