<?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[Vergleich von zwar Chars]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgendes Problem:<br />
Ich habe mittels Winsock eine Netzwerkverbidnung aufgebaut die auch in beide Richtungen einwandfrei funktioniert.</p>
<p>Wenn ich nun vom Clienten den Text &quot;test&quot; an den Server sende, soll dieser eigentlich den Wert &quot;0&quot; zurücksenden, ansonsten &quot;1&quot;.</p>
<p>Dazu habe ich folgenden Code:</p>
<pre><code>char buf[8192]; 
//[...] 
//Empfang der Daten des Clienten 
  rc=recv(connectedSocket,buf,256,0); 
  printf(&quot;Client schrieb: %s\n&quot;,buf); 
  send (connectedSocket,CheckCommand(buf),1,0); 

//[...] 
char *CheckCommand(char test[8192]) 
{ 
if (test == &quot;test&quot;) 
  { 
  return &quot;0&quot;; 
  } 
return &quot;1&quot;; 
}
</code></pre>
<p>Jetzt stelle ich fest, wenn ich per Debugger durchsteppe, dass bei der Zeile der if Abfrage die Variabel &quot;test&quot; den Wert &quot;test&quot; hat - jedoch wird die if Abfrage als False angesehen und &quot;1&quot; zurückgegeben...</p>
<p>Nun meine Fragen:<br />
Woran liegt das? Kann man Chars nicht (so leicht) vergleichen?<br />
Wie kann ich nun Prüfen ob der gesendete Text den Wert &quot;test&quot; enthält?<br />
Was für alternative Dateitypen gibt es mit denen ein solcher Vergleich möglich ist?<br />
Was ist allgemein an dem Code verbesserungfähig (sicher einiges, obwohl es nur wenige Zeilen sind)</p>
<p>Bitte nicht zu hart sein, bin Anfänger im Bereich der Socketprogrammierung, habe sonst immer fertige Komponenten benutzt...</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/134480/vergleich-von-zwar-chars</link><generator>RSS for Node</generator><lastBuildDate>Fri, 28 Aug 2026 16:26:28 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/134480.rss" rel="self" type="application/rss+xml"/><pubDate>Thu, 26 Jan 2006 12:28:58 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Vergleich von zwar Chars on Thu, 26 Jan 2006 12:28:58 GMT]]></title><description><![CDATA[<p>Hallo,<br />
ich habe folgendes Problem:<br />
Ich habe mittels Winsock eine Netzwerkverbidnung aufgebaut die auch in beide Richtungen einwandfrei funktioniert.</p>
<p>Wenn ich nun vom Clienten den Text &quot;test&quot; an den Server sende, soll dieser eigentlich den Wert &quot;0&quot; zurücksenden, ansonsten &quot;1&quot;.</p>
<p>Dazu habe ich folgenden Code:</p>
<pre><code>char buf[8192]; 
//[...] 
//Empfang der Daten des Clienten 
  rc=recv(connectedSocket,buf,256,0); 
  printf(&quot;Client schrieb: %s\n&quot;,buf); 
  send (connectedSocket,CheckCommand(buf),1,0); 

//[...] 
char *CheckCommand(char test[8192]) 
{ 
if (test == &quot;test&quot;) 
  { 
  return &quot;0&quot;; 
  } 
return &quot;1&quot;; 
}
</code></pre>
<p>Jetzt stelle ich fest, wenn ich per Debugger durchsteppe, dass bei der Zeile der if Abfrage die Variabel &quot;test&quot; den Wert &quot;test&quot; hat - jedoch wird die if Abfrage als False angesehen und &quot;1&quot; zurückgegeben...</p>
<p>Nun meine Fragen:<br />
Woran liegt das? Kann man Chars nicht (so leicht) vergleichen?<br />
Wie kann ich nun Prüfen ob der gesendete Text den Wert &quot;test&quot; enthält?<br />
Was für alternative Dateitypen gibt es mit denen ein solcher Vergleich möglich ist?<br />
Was ist allgemein an dem Code verbesserungfähig (sicher einiges, obwohl es nur wenige Zeilen sind)</p>
<p>Bitte nicht zu hart sein, bin Anfänger im Bereich der Socketprogrammierung, habe sonst immer fertige Komponenten benutzt...</p>
]]></description><link>https://www.c-plusplus.net/forum/post/976871</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/976871</guid><dc:creator><![CDATA[sockproblem]]></dc:creator><pubDate>Thu, 26 Jan 2006 12:28:58 GMT</pubDate></item><item><title><![CDATA[Reply to Vergleich von zwar Chars on Thu, 26 Jan 2006 12:31:12 GMT]]></title><description><![CDATA[<p>Klar kann man char's mit == vergleichen, aber du arbeitest mit char* und da vergleicht == die Adressen, auf die die Pointer zeigen. Um den Inhalt hinter diesen zu vergleichen, verwendet man strcmp() (oder std::string).</p>
]]></description><link>https://www.c-plusplus.net/forum/post/976875</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/976875</guid><dc:creator><![CDATA[CStoll (off)]]></dc:creator><pubDate>Thu, 26 Jan 2006 12:31:12 GMT</pubDate></item></channel></rss>