<?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[Map Char Zeichenkette als Key speichern?]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich möchte eine Char Zeichenkette als Key in einer Map speichern jedoch funktioniert das Finden nicht! Er geht da glaub auf den Pointer nur weiß ich nicht wie ich das umändern muss damit er auf den Inhalt des Char geht?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;map&gt;
using namespace std;

int main()
{ 
   map&lt; char*, int&gt; months;
	char snr[] = &quot;as&quot;;
	char b[] = &quot;as&quot;;

  months.insert(std::make_pair(snr,3));

  	std::map&lt; char*, int&gt; ::iterator it ;  
	 for( it = months.begin(); it != months.end(); it++ ) {
		 std::cout &lt;&lt; &quot;word: &quot; &lt;&lt; it-&gt;first &lt;&lt; &quot;, count: &quot; &lt;&lt; it-&gt;second &lt;&lt; std::endl;
	 }
	 std::map&lt; char*, int&gt;::iterator i;
	it = months.find(b);
	if(it != months.end()){
		cout&lt;&lt;&quot;ja&quot;;
		std::cout &lt;&lt;it-&gt;second;		
	}

system(&quot;PAUSE&quot;);
  return 0;
}
</code></pre>
<p>thx downset</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/178162/map-char-zeichenkette-als-key-speichern</link><generator>RSS for Node</generator><lastBuildDate>Sun, 20 Sep 2026 17:11:54 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/178162.rss" rel="self" type="application/rss+xml"/><pubDate>Sun, 08 Apr 2007 13:49:29 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 13:49:29 GMT]]></title><description><![CDATA[<p>Hallo</p>
<p>Ich möchte eine Char Zeichenkette als Key in einer Map speichern jedoch funktioniert das Finden nicht! Er geht da glaub auf den Pointer nur weiß ich nicht wie ich das umändern muss damit er auf den Inhalt des Char geht?</p>
<pre><code>#include &lt;iostream&gt;
#include &lt;map&gt;
using namespace std;

int main()
{ 
   map&lt; char*, int&gt; months;
	char snr[] = &quot;as&quot;;
	char b[] = &quot;as&quot;;

  months.insert(std::make_pair(snr,3));

  	std::map&lt; char*, int&gt; ::iterator it ;  
	 for( it = months.begin(); it != months.end(); it++ ) {
		 std::cout &lt;&lt; &quot;word: &quot; &lt;&lt; it-&gt;first &lt;&lt; &quot;, count: &quot; &lt;&lt; it-&gt;second &lt;&lt; std::endl;
	 }
	 std::map&lt; char*, int&gt;::iterator i;
	it = months.find(b);
	if(it != months.end()){
		cout&lt;&lt;&quot;ja&quot;;
		std::cout &lt;&lt;it-&gt;second;		
	}

system(&quot;PAUSE&quot;);
  return 0;
}
</code></pre>
<p>thx downset</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261658</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261658</guid><dc:creator><![CDATA[Downset]]></dc:creator><pubDate>Sun, 08 Apr 2007 13:49:29 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 14:35:36 GMT]]></title><description><![CDATA[<p>Nimm std::string, dann haste den Stress nicht, dass man char-Zeichenketten mit strcmp vergleichen muss.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261680</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261680</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 08 Apr 2007 14:35:36 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 14:58:33 GMT]]></title><description><![CDATA[<p>mmmm ich würde das aber gerne mit unsigned char machen? hab aber keine ahnung wo ich da ansetzten soll?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261691</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261691</guid><dc:creator><![CDATA[Downset]]></dc:creator><pubDate>Sun, 08 Apr 2007 14:58:33 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 15:17:52 GMT]]></title><description><![CDATA[<p>Downset schrieb:</p>
<blockquote>
<p>mmmm ich würde das aber gerne mit unsigned char machen? hab aber keine ahnung wo ich da ansetzten soll?</p>
</blockquote>
<p>also ein Variablenfeld von &quot;unsigned char&quot;s oder wie?<br />
std::vector&lt;unsigned char&gt; würde ich spontan vorschlagen <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f609.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--winking_face"
      title=";)"
      alt="😉"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261700</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261700</guid><dc:creator><![CDATA[Checker*amp*Murckser]]></dc:creator><pubDate>Sun, 08 Apr 2007 15:17:52 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 15:31:11 GMT]]></title><description><![CDATA[<p>verdammt geht das nicht irgendwie einfacher?<br />
was ich eigentlich will ist nur sone map</p>
<pre><code class="language-cpp">map&lt;unsigned char*, int&gt; months;
</code></pre>
<p>mit einem schlüssel der unsigned char sein sollte?<br />
und dann mit map.find( ) den wenn vorhandenen schlüssel finden?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261716</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261716</guid><dc:creator><![CDATA[Downset]]></dc:creator><pubDate>Sun, 08 Apr 2007 15:31:11 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 15:39:24 GMT]]></title><description><![CDATA[<p>Dann musst du der map mitteilen, wie du vergleichen willst:</p>
<pre><code class="language-cpp">struct StrCmp
{
    bool operator()(const char* lhs, const char* rhs)
    {
        return strcmp(lhs, rhs) &lt; 0;
    }
};

map&lt;const char*, int, StrCmp&gt; myMap;
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1261730</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261730</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 08 Apr 2007 15:39:24 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 15:54:44 GMT]]></title><description><![CDATA[<p>super thx das funzt -&gt; mit unsigned gehts nicht mit char schon kriegt ma das auch noch irgendwie hin? das die deklaration unsigned char* heißt? ich programmier da auf einem bestehenden code und der hat unsigned chars und das will ich nicht ändern?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1261744</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261744</guid><dc:creator><![CDATA[Downset]]></dc:creator><pubDate>Sun, 08 Apr 2007 15:54:44 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 17:18:44 GMT]]></title><description><![CDATA[<p>Naja, du musst jetzt strcmp für unsigned char* selbst implementieren, also etwa so:</p>
<pre><code class="language-cpp">struct UStrCmp
{
	bool operator()(const unsigned char* lhs_, const unsigned char* rhs_) const
	{
		unsigned char* lhs = const_cast&lt;unsigned char*&gt;(lhs_);
		unsigned char* rhs = const_cast&lt;unsigned char*&gt;(rhs_);
		while(*lhs != 0 &amp;&amp; *rhs != 0)
		{
			if(*lhs &lt; *rhs)
				return true;
			if(*lhs &gt; *rhs)
				return false;
			++lhs;
			++rhs;
		}
		return false;
	}
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1261788</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261788</guid><dc:creator><![CDATA[Michael E.]]></dc:creator><pubDate>Sun, 08 Apr 2007 17:18:44 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Sun, 08 Apr 2007 17:27:13 GMT]]></title><description><![CDATA[<p>thx hab was für unsigned char gefunden -&gt;</p>
<pre><code>#include &lt;mbstring.h&gt;
using namespace std;

	struct StrCmp 
{ 
    bool operator()(const unsigned char* lhs, const unsigned char* rhs) const
    {		
		if (sizeof(lhs)==sizeof(rhs)){
			return _mbsnicmp(lhs, rhs,sizeof(lhs)) &lt; 0; 
		}else {
			return false;
		}
    } 
};
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1261794</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1261794</guid><dc:creator><![CDATA[Downset]]></dc:creator><pubDate>Sun, 08 Apr 2007 17:27:13 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Mon, 09 Apr 2007 09:01:22 GMT]]></title><description><![CDATA[<p>Downset schrieb:</p>
<blockquote>
<p>thx hab was für unsigned char gefunden -&gt;</p>
<pre><code>#include &lt;mbstring.h&gt;
using namespace std;

	struct StrCmp 
{ 
    bool operator()(const unsigned char* lhs, const unsigned char* rhs) const
    {		
		if (sizeof(lhs)==sizeof(rhs)){
			return _mbsnicmp(lhs, rhs,sizeof(lhs)) &lt; 0; 
		}else {
			return false;
		}
    } 
};
</code></pre>
</blockquote>
<p>WTF??? Das würde ich umschreiben:</p>
<pre><code class="language-cpp">bool operator()(const unsigned char* lhs, const unsigned char* rhs) const {		
	if (true == true &amp;&amp; true != false &amp;&amp; false == false &amp;&amp; false != true) {
		return _mbsnicmp(lhs, rhs,sizeof(lhs)) &lt; 0; 
	}
	else if (true != true || true == false || false != false || false == true) {
		return !true == (false != true); 
	}
	else {
		return true ? false : true;
	}
}
</code></pre>
<p>Ernsthaft: sizeof(lhs)==sizeof(rhs) ist immer wahr, da du hier nur die Größe zweier Pointer vergleichst und die ist für gleiche Pointer-Typen natürlich immer identisch.</p>
<p>_mbsnicmp(lhs, rhs,sizeof(lhs)) &lt; 0;</p>
<p>Der Aufruf ist sicher nicht das was du willst: du vergleichst höchstens sizeof(unsigned char*) viele Zeichen, auf einer 32-bit-Maschine also 4. Sinnvoller wäre der Einsatz der Funktion _mbsicmp.</p>
<p>Zusammengefasst:</p>
<pre><code class="language-cpp">bool operator()(const unsigned char* lhs, const unsigned char* rhs) const {		
   return _mbsicmp(lhs, rhs,) &lt; 0; 
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1262086</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262086</guid><dc:creator><![CDATA[HumeSikkins]]></dc:creator><pubDate>Mon, 09 Apr 2007 09:01:22 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Mon, 09 Apr 2007 09:25:33 GMT]]></title><description><![CDATA[<p>#fachmann betreten<br />
* ChanServ gibt Voice-Status an windbird<br />
&lt;Grober__&gt; bool operator()(const unsigned char* lhs, const unsigned char* rhs) const {<br />
&lt;Grober__&gt; if (true == true &amp;&amp; true != false &amp;&amp; false == false &amp;&amp; false != true) {<br />
&lt;Grober__&gt; return <em>mbsnicmp(lhs, rhs,sizeof(lhs)) &lt; 0;<br />
&lt;Grober</em>_&gt; }<br />
&lt;Grober__&gt; else if (true != true || true == false || false != false || false == true) {<br />
&lt;Grober__&gt; return !true == (false != true);<br />
&lt;Grober__&gt; }<br />
&lt;Grober__&gt; else {<br />
&lt;Grober__&gt; return true ? false : true;<br />
&lt;Grober__&gt; }<br />
&lt;Grober__&gt; }<br />
&lt;Besitzer&gt; LINK ?<br />
&lt;Grober__&gt; EGAL !<br />
&lt;Grober__&gt; <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1262086.html#1262086" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1262086.html#1262086</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262096</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262096</guid><dc:creator><![CDATA[gROBER___._]]></dc:creator><pubDate>Mon, 09 Apr 2007 09:25:33 GMT</pubDate></item><item><title><![CDATA[Reply to Map Char Zeichenkette als Key speichern? on Mon, 09 Apr 2007 09:53:33 GMT]]></title><description><![CDATA[<p>gROBER___._ schrieb:</p>
<blockquote>
<p>#fachmann betreten<br />
* ChanServ gibt Voice-Status an windbird<br />
&lt;Grober__&gt; bool operator()(const unsigned char* lhs, const unsigned char* rhs) const {<br />
&lt;Grober__&gt; if (true == true &amp;&amp; true != false &amp;&amp; false == false &amp;&amp; false != true) {<br />
&lt;Grober__&gt; return <em>mbsnicmp(lhs, rhs,sizeof(lhs)) &lt; 0;<br />
&lt;Grober</em>_&gt; }<br />
&lt;Grober__&gt; else if (true != true || true == false || false != false || false == true) {<br />
&lt;Grober__&gt; return !true == (false != true);<br />
&lt;Grober__&gt; }<br />
&lt;Grober__&gt; else {<br />
&lt;Grober__&gt; return true ? false : true;<br />
&lt;Grober__&gt; }<br />
&lt;Grober__&gt; }<br />
&lt;Besitzer&gt; LINK ?<br />
&lt;Grober__&gt; EGAL !<br />
&lt;Grober__&gt; <a href="http://www.c-plusplus.net/forum/viewtopic-var-p-is-1262086.html#1262086" rel="nofollow">http://www.c-plusplus.net/forum/viewtopic-var-p-is-1262086.html#1262086</a></p>
</blockquote>
<p>DU HAST DIE HAAAAARE SCHÖÖÖN (und die birne leer) <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44e.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_down"
      title=":-1:"
      alt="👎"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1262110</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1262110</guid><dc:creator><![CDATA[?:]]></dc:creator><pubDate>Mon, 09 Apr 2007 09:53:33 GMT</pubDate></item></channel></rss>