<?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[Überprüfung, ob Wort in einem Satz vorkommt]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe mir eine kleine Funktion geschrieben bzw. mit viel Hilfe zusammengebastelt, trotzdem, bin ich stolz, da das mein erster (für mich) etwas anspruchsvoller Code war. Ganz am Anfang hat der Code nichts anderes gemacht, als alle Wörter aus einem String in einen Vektor zu lesen und dann jedes Element nach dem mit übergebenen Schlüsselbegriff zu durchsuchen. Das hat auch funktioniert. Das einzige Problem war: Wenn ein Wort ein Satzzeichen hintendran hat (Wie geht es dir?) so wie das &quot;dir?&quot; im Beispielsatz, wird es von der Funktion nicht erkannt. Doof sowas. Also habe ich probiert, eine kleine Erweiterung des Codes zu basteln, die dann noch bei jedem Wort überprüft, ob ein Satzzeichen drin vorkommt. Das ganze sieht jetzt so aus:</p>
<pre><code class="language-cpp">int InSentence(string sentence, string querry)
{
	int returnit = 0;
	string param0002[] = {&quot;!&quot; , &quot;.&quot; , &quot;,&quot; , &quot;-&quot; , &quot;_&quot; , &quot;:&quot; , &quot;;&quot;,&quot;?&quot;};
	int till = 1;
	int set = 0;
	size_t found;
	istringstream istr(sentence);
	vector&lt;string&gt; words;
	string templower;
	string line;
	while((istr &gt;&gt; line)) words.push_back(line);
	for(vector&lt;int&gt;::size_type i = 0; i &lt; words.size(); i++)
	{
		templower = UpToLow(words[i]);
		while(till==1)
		{ 
			for(int ii=0; ii&lt;8; ii++)
			{
				found=templower.find(param0002[ii]);
 				if (found!=string::npos)
 				{
 					till = 1;
 					set = 1;
					templower.replace(templower.find(param0002[ii]),param0002[ii].length(),&quot;&quot;);
 				} else {
 					if(set!=1) { till = 0; }
 				}
			}
			set = 0;
		}
		if(templower == querry) returnit = 1;
	}
	if(returnit == 1) { return 1; }
	return 0;
}
</code></pre>
<p>Schön und gut, die Funktion funktioniert (tolles Wortspiel oder? :D) auch, nur halt genauso wie vorher... Das heißt Wörter werden erkannt, Satzzeichen aber immer noch nicht... Hat einer eine Idee, woran das liegen könnte? Danke schonmal im Voraus <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 />
Gruß,</p>
<p>Jonathan</p>
<p>P.S.: Die Funktion UpToLow funktioniert auch ohne Probleme und wandelt einfach nur den String ins kleingeschriebene um.</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/220076/überprüfung-ob-wort-in-einem-satz-vorkommt</link><generator>RSS for Node</generator><lastBuildDate>Tue, 06 Oct 2026 08:12:00 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/220076.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 11 Aug 2008 17:15:33 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Überprüfung, ob Wort in einem Satz vorkommt on Mon, 11 Aug 2008 17:16:08 GMT]]></title><description><![CDATA[<p>Hallo!</p>
<p>Ich habe mir eine kleine Funktion geschrieben bzw. mit viel Hilfe zusammengebastelt, trotzdem, bin ich stolz, da das mein erster (für mich) etwas anspruchsvoller Code war. Ganz am Anfang hat der Code nichts anderes gemacht, als alle Wörter aus einem String in einen Vektor zu lesen und dann jedes Element nach dem mit übergebenen Schlüsselbegriff zu durchsuchen. Das hat auch funktioniert. Das einzige Problem war: Wenn ein Wort ein Satzzeichen hintendran hat (Wie geht es dir?) so wie das &quot;dir?&quot; im Beispielsatz, wird es von der Funktion nicht erkannt. Doof sowas. Also habe ich probiert, eine kleine Erweiterung des Codes zu basteln, die dann noch bei jedem Wort überprüft, ob ein Satzzeichen drin vorkommt. Das ganze sieht jetzt so aus:</p>
<pre><code class="language-cpp">int InSentence(string sentence, string querry)
{
	int returnit = 0;
	string param0002[] = {&quot;!&quot; , &quot;.&quot; , &quot;,&quot; , &quot;-&quot; , &quot;_&quot; , &quot;:&quot; , &quot;;&quot;,&quot;?&quot;};
	int till = 1;
	int set = 0;
	size_t found;
	istringstream istr(sentence);
	vector&lt;string&gt; words;
	string templower;
	string line;
	while((istr &gt;&gt; line)) words.push_back(line);
	for(vector&lt;int&gt;::size_type i = 0; i &lt; words.size(); i++)
	{
		templower = UpToLow(words[i]);
		while(till==1)
		{ 
			for(int ii=0; ii&lt;8; ii++)
			{
				found=templower.find(param0002[ii]);
 				if (found!=string::npos)
 				{
 					till = 1;
 					set = 1;
					templower.replace(templower.find(param0002[ii]),param0002[ii].length(),&quot;&quot;);
 				} else {
 					if(set!=1) { till = 0; }
 				}
			}
			set = 0;
		}
		if(templower == querry) returnit = 1;
	}
	if(returnit == 1) { return 1; }
	return 0;
}
</code></pre>
<p>Schön und gut, die Funktion funktioniert (tolles Wortspiel oder? :D) auch, nur halt genauso wie vorher... Das heißt Wörter werden erkannt, Satzzeichen aber immer noch nicht... Hat einer eine Idee, woran das liegen könnte? Danke schonmal im Voraus <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 />
Gruß,</p>
<p>Jonathan</p>
<p>P.S.: Die Funktion UpToLow funktioniert auch ohne Probleme und wandelt einfach nur den String ins kleingeschriebene um.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562810</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562810</guid><dc:creator><![CDATA[Mefisto]]></dc:creator><pubDate>Mon, 11 Aug 2008 17:16:08 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfung, ob Wort in einem Satz vorkommt on Mon, 11 Aug 2008 19:55:15 GMT]]></title><description><![CDATA[<p>Zuerst Satzzeichen löschen, in vector schieben und durchsuchen. Fertig.</p>
<pre><code class="language-cpp">bool in_text (std::string text, std::string word)
{
	std::string without = &quot;!.,-_:;?&quot;;

	//Satzzeichen löschen
	std::string::iterator iter = without.begin();
	for(;iter != without.end();++iter)
	{	
		std::string::iterator it = text.begin();
		while (it != text.end ())
		{
			if(*it == *iter)
				it = text.erase(it);
			else
				++it;
		}
	}

	std::vector&lt;std::string&gt; v;

	std::stringstream s (text);

	//vector füllen
	std::string w;
	while (s &gt;&gt; w)
	{
		v.push_back( w );
	}

	//vector durchsuchen
	std::vector&lt;std::string&gt;::iterator it = std::find (v.begin(),v.end(), word);

	if(it != v.end())
		return true;
	else 
		return false;
}
</code></pre>
<p>So schwer ist das doch nicht, oder?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562905</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562905</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 11 Aug 2008 19:55:15 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfung, ob Wort in einem Satz vorkommt on Mon, 11 Aug 2008 20:09:37 GMT]]></title><description><![CDATA[<p>Hm ich habe aber jetzt immernoch das selbe Problem wie vorhin... Wörter mit Satzzeichen werden nicht erkannt, wörter ohne schon...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562919</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562919</guid><dc:creator><![CDATA[Mefisto]]></dc:creator><pubDate>Mon, 11 Aug 2008 20:09:37 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfung, ob Wort in einem Satz vorkommt on Mon, 11 Aug 2008 20:13:47 GMT]]></title><description><![CDATA[<p>Mefisto schrieb:</p>
<blockquote>
<p>Hm ich habe aber jetzt immernoch das selbe Problem wie vorhin... Wörter mit Satzzeichen werden nicht erkannt, wörter ohne schon...</p>
</blockquote>
<p>Nein. Für etwas filtere ich die da ja aus.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1562926</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562926</guid><dc:creator><![CDATA[drakon]]></dc:creator><pubDate>Mon, 11 Aug 2008 20:13:47 GMT</pubDate></item><item><title><![CDATA[Reply to Überprüfung, ob Wort in einem Satz vorkommt on Mon, 11 Aug 2008 20:52:51 GMT]]></title><description><![CDATA[<p>Ah, ich habe vergessen die konvertierung in Lower-Case wieder einzubauen... Deswegen hats gehackt... Vielen Dank, jetzt läufts <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/1562947</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1562947</guid><dc:creator><![CDATA[Mefisto]]></dc:creator><pubDate>Mon, 11 Aug 2008 20:52:51 GMT</pubDate></item></channel></rss>