<?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[Vector Elemtn mit Zeichenkette vergleichen]]></title><description><![CDATA[<p>Hallo Leute, ich habe folgendes Problem.</p>
<p>Ich habe einen vector in dem zur Laufzeit neue Elemente hinzugefügt werden.</p>
<p>Bevor ein Element hinzugefügt wird, möchte ich allerdings testen, ob es schon im vector enthalten ist.</p>
<pre><code>...
#include &lt;vector&gt;
using namespace std;

int main ()
{
    char name[20];
    vector&lt;char&gt; liste;

    ....
    // char name über cin füllen
    ....

    // jetzt prüfen ob es schon drin ist
    for ( unsigned int i = 0; i &lt; liste.size(); i++ )
    {
	if ( ( strcmp(name,liste[i]) ) == NULL )
	{
        // Das Programm ist Multithreaded deshalb die CriticalSection
		EnterCriticalSection(&amp;CritSec);

		cout &lt;&lt; endl;
		cout &lt;&lt; &quot;Name ist schon vorhanden : &quot; &lt;&lt; name &lt;&lt; endl;

		LeaveCriticalSection(&amp;CritSec);
	}
     }

    .....
    // Irgendwas machen z.B: Threads starten
    .....

    return 0;
}
</code></pre>
<p>Jetzt sagt mir das Programm allerdings, bei jedem Namen den ich eingeben, er sei schon vorhanden. Woran liegt das ?<br />
Habe schon mit strcmp rumexperimentiert, brachte aber auch nichts.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/137775/vector-elemtn-mit-zeichenkette-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Sat, 29 Aug 2026 20:46:48 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/137775.rss" rel="self" type="application/rss+xml"/><pubDate>Mon, 20 Feb 2006 17:14:41 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Mon, 20 Feb 2006 17:14:41 GMT]]></title><description><![CDATA[<p>Hallo Leute, ich habe folgendes Problem.</p>
<p>Ich habe einen vector in dem zur Laufzeit neue Elemente hinzugefügt werden.</p>
<p>Bevor ein Element hinzugefügt wird, möchte ich allerdings testen, ob es schon im vector enthalten ist.</p>
<pre><code>...
#include &lt;vector&gt;
using namespace std;

int main ()
{
    char name[20];
    vector&lt;char&gt; liste;

    ....
    // char name über cin füllen
    ....

    // jetzt prüfen ob es schon drin ist
    for ( unsigned int i = 0; i &lt; liste.size(); i++ )
    {
	if ( ( strcmp(name,liste[i]) ) == NULL )
	{
        // Das Programm ist Multithreaded deshalb die CriticalSection
		EnterCriticalSection(&amp;CritSec);

		cout &lt;&lt; endl;
		cout &lt;&lt; &quot;Name ist schon vorhanden : &quot; &lt;&lt; name &lt;&lt; endl;

		LeaveCriticalSection(&amp;CritSec);
	}
     }

    .....
    // Irgendwas machen z.B: Threads starten
    .....

    return 0;
}
</code></pre>
<p>Jetzt sagt mir das Programm allerdings, bei jedem Namen den ich eingeben, er sei schon vorhanden. Woran liegt das ?<br />
Habe schon mit strcmp rumexperimentiert, brachte aber auch nichts.</p>
<p>Danke</p>
]]></description><link>https://www.c-plusplus.net/forum/post/998775</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/998775</guid><dc:creator><![CDATA[Rubber]]></dc:creator><pubDate>Mon, 20 Feb 2006 17:14:41 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Mon, 20 Feb 2006 17:18:49 GMT]]></title><description><![CDATA[<p>Du hast einen vector&lt;<strong>char</strong>&gt;, da kannst du nur einzelne Zeichen unterbringen - für dich wäre ein vector&lt;string&gt; vermutlich nützlicher (bzw. ein set&lt;string&gt;, das verhindert von selber Doppeleintragungen).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/998780</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/998780</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 20 Feb 2006 17:18:49 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Mon, 20 Feb 2006 17:23:48 GMT]]></title><description><![CDATA[<p>Das Problem ist, dass ich bei diesen String geschichten net so ganz durchblicke.<br />
Wenn ich einen vector&lt;string&gt; mache, dann muss ich den nachher explizit in ein char casten, da ich es an Funktionen übergebe<br />
die als Parameter char nehmen und nicht String. Wie gesagt, ich versteh das noch net so ganz mit den Strings. Ich komme von C und da gibts halt nur char hatte nie mit CString zu tun. Übrigens hab ich vector&lt;char *&gt; nicht vector&lt;char&gt; war ein Tippfehler. set&lt;string&gt; kenne ich nicht. Mal eben nachschlagen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/998789</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/998789</guid><dc:creator><![CDATA[Rubber]]></dc:creator><pubDate>Mon, 20 Feb 2006 17:23:48 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Mon, 20 Feb 2006 17:48:53 GMT]]></title><description><![CDATA[<p>Rubber schrieb:</p>
<blockquote>
<p>Das Problem ist, dass ich bei diesen String geschichten net so ganz durchblicke.<br />
Wenn ich einen vector&lt;string&gt; mache, dann muss ich den nachher explizit in ein char casten, da ich es an Funktionen übergebe<br />
die als Parameter char nehmen und nicht String.</p>
</blockquote>
<p>Dafür gibt's die Methode &quot;c_str()&quot;</p>
<blockquote>
<p>Übrigens hab ich vector&lt;char *&gt; nicht vector&lt;char&gt; war ein Tippfehler.</p>
</blockquote>
<p>Lass mich raten, den füllst du mit &quot;liste.push_back(name);&quot; - böser Fehler, weil du da alle Vektor-Elemente mit der Adresse des Arrays 'name' füllst (und dann vergleicht strcmp() mit sich selbst).<br />
Wenn du schon unbedingt mit char* arbeitest, mußt du für jeden Namen einen neuen Speicherbereich reseriveren und die Adresse DAVON dann in den vektor packen (string hätte da den Vorteil, daß es sich selber um solche Probleme kümmert).</p>
<blockquote>
<p>set&lt;string&gt; kenne ich nicht. Mal eben nachschlagen.</p>
</blockquote>
<p>Mach das.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/998809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/998809</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Mon, 20 Feb 2006 17:48:53 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Tue, 21 Feb 2006 09:30:58 GMT]]></title><description><![CDATA[<p>Danke für die Hilfe,</p>
<p>habe mich jetzt doch entschieden string zu verwenden. Ist wesentlich einfacher, habt ihr vollkommen recht.<br />
Dass es so einfch ist mit c_str() den String als Char auszugeben war mir nicht klar. Deutliche Verbesserung gegenüber C.<br />
Allerdings muss man ja dann auch mit stringstreams arbeiten Zwecks dem Zusammenschneiden. Aber da les ich mich mal in Ruhe rein.</p>
<p>Stimmt das Beispiel ? ( Nur um zu wissen ob ich es begriffen habe <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>
<pre><code>...

stringstream StrStr;
string Str;
string Name = &quot;Jakob&quot;;

StrStr &lt;&lt; &quot;Hallo &quot; &lt;&lt; Name &lt;&lt; &quot; , wie gehts ?&quot;;
Str = StrStr.str();

cout &lt;&lt; Str &lt;&lt; &quot; oder &quot; &lt;&lt; Str.c_str() &lt;&lt; endl;

...
</code></pre>
<p>Thx</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999174</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999174</guid><dc:creator><![CDATA[Rubber]]></dc:creator><pubDate>Tue, 21 Feb 2006 09:30:58 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Tue, 21 Feb 2006 09:39:40 GMT]]></title><description><![CDATA[<p>Ja, das dürfte stimmen - aber Strings können auch direkt miteinander verkettet werden:</p>
<pre><code class="language-cpp">string Name = &quot;Jakob&quot;;
string Str = &quot;Hallo &quot; + Name + &quot;, wie geht's?&quot;;

cout&lt;&lt;Str&lt;&lt;endl;
</code></pre>
<p>(du mußt nur aufpassen, wenn du zwei String-Literale miteinander verketten willst - &quot;string Str = &quot;Hallo &quot; + &quot;Jakob&quot;;&quot; klappt nicht)</p>
<p>StringStreams sind erst dann wirklich notwendig, wenn du sprintf mit C++ Methoden nachbilden willst.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999183</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999183</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 21 Feb 2006 09:39:40 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Tue, 21 Feb 2006 10:09:10 GMT]]></title><description><![CDATA[<p>Genau das muss ich. Hatte vorher eine zeichenkette mit sprintf zusammengeschnitten, bekam aber vom compiler die meldung Deprected, also hab ich mich umgesehen. hab aber nix passendes gefunden. außer jetzt bei den strings über stringstream.</p>
<p>hatte vorher mal das versucht:</p>
<pre><code>..

int a = 2, b = 4, c= 5, d = 7;

string Str;

Str = a + &quot;-&quot; + b + &quot;-&quot; + c + &quot;-&quot; + d + &quot;-&quot;;

...
</code></pre>
<p>gab compiler fehler, er meinte er könnte keine 2 zeiger addieren.</p>
<p>deshalb stringstreams, oder ?</p>
<p>Besten Dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999210</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999210</guid><dc:creator><![CDATA[Rubber]]></dc:creator><pubDate>Tue, 21 Feb 2006 10:09:10 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Tue, 21 Feb 2006 10:25:07 GMT]]></title><description><![CDATA[<p>Ja, an der Stelle brauchst du StringStreams (wie gesagt: wenn du einen Ersatz für sprintf benötigst, bist du hier an der richtigen Adresse).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999225</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999225</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Tue, 21 Feb 2006 10:25:07 GMT</pubDate></item><item><title><![CDATA[Reply to Vector Elemtn mit Zeichenkette vergleichen on Tue, 21 Feb 2006 10:26:36 GMT]]></title><description><![CDATA[<p>Super, danke.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/999226</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/999226</guid><dc:creator><![CDATA[Rubber]]></dc:creator><pubDate>Tue, 21 Feb 2006 10:26:36 GMT</pubDate></item></channel></rss>