<?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[Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen?]]></title><description><![CDATA[<p>Siehe Titel:<br />
Wie würde ich einen vector&lt;char&gt; nach Schlüsselwörtern durchsuchen? Also nem string wie &quot;und es war Sommer&quot; z.B..</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/300088/wie-würde-ich-einen-vector-lt-char-gt-nach-schlüsselwörtern-durchsuchen</link><generator>RSS for Node</generator><lastBuildDate>Wed, 12 Aug 2026 23:57:29 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/300088.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 24 Feb 2012 21:44:56 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 21:44:56 GMT]]></title><description><![CDATA[<p>Siehe Titel:<br />
Wie würde ich einen vector&lt;char&gt; nach Schlüsselwörtern durchsuchen? Also nem string wie &quot;und es war Sommer&quot; z.B..</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185421</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185421</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Fri, 24 Feb 2012 21:44:56 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 21:48:02 GMT]]></title><description><![CDATA[<p>Ich würd alle Elemente des Vektors zu nem string hinzuaddieren und dann mithilfe von string::find suchen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185423</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185423</guid><dc:creator><![CDATA[Incocnito]]></dc:creator><pubDate>Fri, 24 Feb 2012 21:48:02 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 21:59:44 GMT]]></title><description><![CDATA[<p>Eben das ist das Problem:<br />
von char[] nach vector&lt;char&gt; dann nach std::string. Wobei auch \0 zwischendrin vorkommen kann. Und verdammt schnell soll's auch sein.</p>
<p>Ausser einem bißchen unterirdischen C in einem C++ Programm fällt mir auf Anhieb nix ein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185424</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185424</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Fri, 24 Feb 2012 21:59:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 21:59:06 GMT]]></title><description><![CDATA[<pre><code class="language-cpp">#include &lt;vector&gt;
#include &lt;algorithm&gt;
#include &lt;iostream&gt;
using namespace std;

int main()
{
	char text[] = &quot;Hallo foo Welt&quot;;
	vector&lt;char&gt; content(text, text + sizeof(text));

	char query[] = &quot;foo&quot;;
	auto found = search(begin(content), end(content), begin(query), end(query) - 1);	// -1 wegen der Nullterminierung
	cout &lt;&lt; found - begin(content) &lt;&lt; endl;
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/2185425</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185425</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 24 Feb 2012 21:59:06 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:04:16 GMT]]></title><description><![CDATA[<p>Was ist auto? Gibt's in VS 2005 wohl nicht. Ist aber cool. Danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185426</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185426</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:04:16 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:01:59 GMT]]></title><description><![CDATA[<p>Wieso kannst du keinen std::string verwenden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185428</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185428</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:01:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:06:51 GMT]]></title><description><![CDATA[<p>auto ist C++11. Du kannst stattdessen auch den konkreten Typen, in diesem Fall <code>vector&lt;char&gt;::iterator</code> , angeben.</p>
<p>Wenn du einen älteren Compiler benutzt, wird dir auch <code>begin(content)</code> um die Ohren fliegen. Daraus musst du dann <code>content.begin()</code> für den Vektor machen und beim Array das Ganze durch Zeigergeschubse lösen, sprich <code>query</code> und <code>query + sizeof(query) - 1</code> .</p>
<pre><code class="language-cpp">char text[] = &quot;Hallo foo Welt&quot;;
	vector&lt;char&gt; content(text, text + sizeof(text));

	char query[] = &quot;foo&quot;;
	auto found = search(content.begin(), content.end(), query, query + sizeof(query) - 1);	// -1 wegen der Nullterminierung
	cout &lt;&lt; found - begin(content) &lt;&lt; endl;
</code></pre>
<p>Welche Typen haben denn deine Ursprungsdaten?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185431</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185431</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:06:51 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:32:21 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>Wieso kannst du keinen std::string verwenden?</p>
</blockquote>
<p>Weil es evtl. auch Binärdaten sind, die aus dem www heruntergeladen und nach Schlüsselwörten durchsucht werden müssen. Und zwar so schnell wie möglich das Ganze.</p>
<p>Ich hab's ja mit unterirdischem C gelöst, es wäre aber interessant andere überzeugende Lösungsansätze zu sehen.</p>
<p>Geliefert:<br />
ein char pointer (+ Länge) von recv (Winsock)<br />
Gefragt:<br />
s.o.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185432</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185432</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:32:21 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:15:00 GMT]]></title><description><![CDATA[<p>Danke Michael E.,<br />
ich denke mein unterirdisches C war bisher die beste wenn auch nicht unbedingt die eleganteste Lösung: memcpy den ganzen Schei** und gut is.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185434</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185434</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:15:00 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:17:44 GMT]]></title><description><![CDATA[<p>Michael E. schrieb:</p>
<blockquote>
<pre><code class="language-cpp">auto found = search(begin(content), end(content), begin(query), end(query) - 1);	// -1 wegen der Nullterminierung
</code></pre>
</blockquote>
<p>Ohne -1 stimmts schon.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185435</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185435</guid><dc:creator><![CDATA[314159265358979__]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:17:44 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:31:58 GMT]]></title><description><![CDATA[<p>EOP schrieb:</p>
<blockquote>
<p>dot schrieb:</p>
<blockquote>
<p>Wieso kannst du keinen std::string verwenden?</p>
</blockquote>
<p>Weil es evtl. auch Binärdaten sind, die aus dem www heruntergeladen und nach Schlüsselwörten durchsucht werden müssen. Und zwar so schnell wie möglich das Ganze.</p>
</blockquote>
<p>Ok, das macht Sinn <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/2185438</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185438</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:31:58 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 22:53:48 GMT]]></title><description><![CDATA[<p>dot schrieb:</p>
<blockquote>
<p>EOP schrieb:</p>
<blockquote>
<p>dot schrieb:</p>
<blockquote>
<p>Wieso kannst du keinen std::string verwenden?</p>
</blockquote>
<p>Weil es evtl. auch Binärdaten sind, die aus dem www heruntergeladen und nach Schlüsselwörten durchsucht werden müssen. Und zwar so schnell wie möglich das Ganze.</p>
</blockquote>
<p>Ok, das macht Sinn <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>Für mich nicht. Warum ist <code>string</code> denn schneller als <code>vector&lt;char&gt;</code> und was hat das mit Binärdaten zu tun? <code>string</code> kann sehr wohl <code>'\0'</code> enthalten. C++ ist <em>nicht</em> C.<br />
<code>vector</code> ist aber genau richtig hier, weil die Extras von <code>string</code> nicht benötigt werden.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185441</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185441</guid><dc:creator><![CDATA[TyRoXx]]></dc:creator><pubDate>Fri, 24 Feb 2012 22:53:48 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 23:33:29 GMT]]></title><description><![CDATA[<p>Nach einem kurzen Test hab ich festgestellt, daß std::string das '\0' anscheinend einfach entfernt (VS 2005).<br />
Das kann's ja auch nicht sein. Ich will alles.</p>
<p>Aber ausser von ME hab ich noch keine vernünftige Anrwort (C++&lt;11) bekommen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185448</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185448</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Fri, 24 Feb 2012 23:33:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 23:31:29 GMT]]></title><description><![CDATA[<p>TyRoXx schrieb:</p>
<blockquote>
<p>dot schrieb:</p>
<blockquote>
<p>EOP schrieb:</p>
<blockquote>
<p>dot schrieb:</p>
<blockquote>
<p>Wieso kannst du keinen std::string verwenden?</p>
</blockquote>
<p>Weil es evtl. auch Binärdaten sind, die aus dem www heruntergeladen und nach Schlüsselwörten durchsucht werden müssen. Und zwar so schnell wie möglich das Ganze.</p>
</blockquote>
<p>Ok, das macht Sinn <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>Für mich nicht. Warum ist <code>string</code> denn schneller als <code>vector&lt;char&gt;</code> und was hat das mit Binärdaten zu tun? <code>string</code> kann sehr wohl <code>'\0'</code> enthalten. C++ ist <em>nicht</em> C.<br />
<code>vector</code> ist aber genau richtig hier, weil die Extras von <code>string</code> nicht benötigt werden.</p>
</blockquote>
<p>Wenn du mich fragst wäre string hier nicht angebracht, weil man es schon rein semantisch nicht mit strings zu tun hat...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185449</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185449</guid><dc:creator><![CDATA[dot]]></dc:creator><pubDate>Fri, 24 Feb 2012 23:31:29 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Fri, 24 Feb 2012 23:42:59 GMT]]></title><description><![CDATA[<p>Muss ich morgen/heute erst testen, ob sowas wie string.append( &quot;a\0b&quot; ) funktioniert, und wenn dann wie.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185451</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185451</guid><dc:creator><![CDATA[EOP]]></dc:creator><pubDate>Fri, 24 Feb 2012 23:42:59 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Sat, 25 Feb 2012 06:58:52 GMT]]></title><description><![CDATA[<p>EOP schrieb:</p>
<blockquote>
<p>Muss ich morgen/heute erst testen, ob sowas wie string.append( &quot;a\0b&quot; ) funktioniert, und wenn dann wie.</p>
</blockquote>
<p>ja, es funktioniert.<br />
string speichert dir alle zeichen, die du möchtest.<br />
wie hast du denn herausgefunden, dass die '\0' offenbar verschluckt wird?<br />
ausgegeben? falls ja: länge mit angeben<br />
z.Bsp.:<br />
<code>std::cout.write(the_string, the_string.size());</code></p>
<p>bb</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185474</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185474</guid><dc:creator><![CDATA[unskilled]]></dc:creator><pubDate>Sat, 25 Feb 2012 06:58:52 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Sat, 25 Feb 2012 08:14:23 GMT]]></title><description><![CDATA[<p>Strings können zwar '\0' enthalten, aber bei</p>
<pre><code class="language-cpp">string.append( &quot;a\0b&quot; )
</code></pre>
<p>wird das übergebene String-Literal als null-terminiert aufgefaßt (denn sonst könnte es ja das Ende des Literals nicht erkennen), d.h. es würde nur &quot;a&quot; hinzugefügt. Abhilfe würde hier nur</p>
<pre><code class="language-cpp">string.append( &quot;a\0b&quot;, 3 )
</code></pre>
<p>schaffen, um auch die beiden anderen Zeichen hinzuzufügen.</p>
<p>Trotzdem würde ich hier auch zu vector&lt;char&gt; raten. Und Michael E. hat dir doch für C++0x03 (d.h. u.a. für VS 2005) kompatiblem Code geliefert (beachte nicht die Anmerkung von PI, der kann nämlich nicht rechnen ;-).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185479</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185479</guid><dc:creator><![CDATA[Th69]]></dc:creator><pubDate>Sat, 25 Feb 2012 08:14:23 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Sat, 25 Feb 2012 09:25:34 GMT]]></title><description><![CDATA[<p>314159265358979__ schrieb:</p>
<blockquote>
<p>Michael E. schrieb:</p>
<blockquote>
<pre><code class="language-cpp">auto found = search(begin(content), end(content), begin(query), end(query) - 1);	// -1 wegen der Nullterminierung
</code></pre>
</blockquote>
<p>Ohne -1 stimmts schon.</p>
</blockquote>
<p>Nein. Die -1 ist richtig. Warum er -1 geschrieben hat, steht doch sogar erklärt da!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185502</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 25 Feb 2012 09:25:34 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Sat, 25 Feb 2012 11:15:03 GMT]]></title><description><![CDATA[<p>Nicht gleich so aggressiv. Ich hatte nen Denkfehler, piss dich nicht gleich so an.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185538</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185538</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 25 Feb 2012 11:15:03 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Sat, 25 Feb 2012 11:54:05 GMT]]></title><description><![CDATA[<p>314159265358979 schrieb:</p>
<blockquote>
<p>Nicht gleich so aggressiv.</p>
</blockquote>
<p>Ich zitiere Dich bei Gelegenheit. :p</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185552</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185552</guid><dc:creator><![CDATA[krümelkacker]]></dc:creator><pubDate>Sat, 25 Feb 2012 11:54:05 GMT</pubDate></item><item><title><![CDATA[Reply to Wie würde ich einen vector&amp;lt;char&amp;gt; nach Schlüsselwörtern durchsuchen? on Sat, 25 Feb 2012 11:57:34 GMT]]></title><description><![CDATA[<p>Ich bin ein Teenie, ich darf das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2185555</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2185555</guid><dc:creator><![CDATA[314159265358979]]></dc:creator><pubDate>Sat, 25 Feb 2012 11:57:34 GMT</pubDate></item></channel></rss>