<?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[struct-datenfeld wert vergleichen]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich hänge hier grade an einer Aufgabe die für meine Prüfung nächste woche sehr wichtig sein könnte.</p>
<p>Und zwar geht es um folgendes:</p>
<p>Ich habe eine Klasse (HostTyp) in der in einem Datenfeld Structs (VServertyp) abgelegt werden.</p>
<p>In einer der Methoden soll ein Datenfeld Eintrag anhand des eingegebenen namen des VServers gelöscht werden.<br />
Hierzu soll durch eine Hilfsfunktion im private bereich der Index des structs mit dem entsprechenden namen also funktionsresultat geliefert werden.</p>
<p>Hier sind die entsprechenden stellen aus dem quellcode:</p>
<p>Die Klasse:</p>
<blockquote>
<p>class HostTyp<br />
{<br />
private:<br />
int kapazitaet,groesse;<br />
string name;<br />
VServerTyp *Hostserver;</p>
<p>public:<br />
HostTyp(int kap,string nam=&quot; &quot;)<br />
:kapazitaet(0),groesse(0), name(nam);<br />
{<br />
Hostserver=new VServerTyp[kap];<br />
kapazitaet=kap;<br />
}<br />
~HostTyp()<br />
{<br />
delete* Hostserver;<br />
}</p>
</blockquote>
<p>Ein beispiel für eine Remove-Funktion aus einer anderen Aufgabe</p>
<blockquote>
<p>bool remove(int Index)<br />
{<br />
bool geht = Index&lt;Groesse &amp;&amp; Index&gt;=0;<br />
if(geht)<br />
{<br />
for(int i=Index; i&lt;Groesse; ++i)<br />
Mitglieder[i] = Mitglieder[i+1];<br />
--Groesse;<br />
}<br />
return geht;<br />
}</p>
</blockquote>
<p>Jetzt hatte ich vor diese Remove funktion auf meine Aufgabe anzupassen indem ich als Indexwert die funktionsresultate nutze wobei ich mir aber auch nicht sicher bin ob es so umsetzbar ist:</p>
<blockquote>
<p>bool remove(VServerTyp vst)<br />
{<br />
string finde;<br />
cin&gt;&gt;finde;<br />
bool geht=findVServer(vst,finde)&lt;groesse &amp;&amp; findVServer(vst,finde)&gt;0;<br />
if (geht)<br />
{<br />
mitglieder[findVServer(vst,finde)]=mitglieder[findVserver(vst,finde)+1];<br />
--groesse;<br />
}<br />
}</p>
</blockquote>
<p>Und nun mein größtes Problem<br />
Aufgabenstellung: &quot; Erstellen sie zusätzlich im private-Beriech eine Hilfsfunktion findVserver(), die in einem Datenfeldabgelegten VServer-Struct and Hand dessen Namens sucht und dessen index im Datenfeld als Funktionsresultat liefert.</p>
<p>Daraus hab ich folgendes gebaut was meiner Meinung nach nur falsch sein kann und gerne wissen würde wie ich das umsetzen kann:</p>
<blockquote>
<p>int findVServer(VServerTyp vst,string suchname)<br />
{<br />
int p;<br />
for(int i=0;i&lt;groesse;++i)<br />
{<br />
if(Hostserver[i].servername=suchname)<br />
p=i;<br />
}<br />
return p;<br />
}</p>
</blockquote>
<p>Es geht hauptsächlich im die zeile</p>
<blockquote>
<p>if(Hostserver[i].servername=suchname)</p>
</blockquote>
<p>Da der struct im Datenfeld abgelegt ist und ich auf eine bestimmte variable (servername) zugreifen muss habe ich das gebaut. meiner meinung nach schwachsinn</p>
<p>ich hoffe das war jetzt nicht zu viel und dass mir hier jemand weiterhelfen kann</p>
<p>ich bedanke mich schonmal im vorraus</p>
<p>Mit freundlichen Grüßen<br />
isi</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/286316/struct-datenfeld-wert-vergleichen</link><generator>RSS for Node</generator><lastBuildDate>Thu, 20 Aug 2026 23:57:17 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/286316.rss" rel="self" type="application/rss+xml"/><pubDate>Sat, 07 May 2011 16:49:38 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to struct-datenfeld wert vergleichen on Sat, 07 May 2011 16:49:38 GMT]]></title><description><![CDATA[<p>Hallo Leute,<br />
ich hänge hier grade an einer Aufgabe die für meine Prüfung nächste woche sehr wichtig sein könnte.</p>
<p>Und zwar geht es um folgendes:</p>
<p>Ich habe eine Klasse (HostTyp) in der in einem Datenfeld Structs (VServertyp) abgelegt werden.</p>
<p>In einer der Methoden soll ein Datenfeld Eintrag anhand des eingegebenen namen des VServers gelöscht werden.<br />
Hierzu soll durch eine Hilfsfunktion im private bereich der Index des structs mit dem entsprechenden namen also funktionsresultat geliefert werden.</p>
<p>Hier sind die entsprechenden stellen aus dem quellcode:</p>
<p>Die Klasse:</p>
<blockquote>
<p>class HostTyp<br />
{<br />
private:<br />
int kapazitaet,groesse;<br />
string name;<br />
VServerTyp *Hostserver;</p>
<p>public:<br />
HostTyp(int kap,string nam=&quot; &quot;)<br />
:kapazitaet(0),groesse(0), name(nam);<br />
{<br />
Hostserver=new VServerTyp[kap];<br />
kapazitaet=kap;<br />
}<br />
~HostTyp()<br />
{<br />
delete* Hostserver;<br />
}</p>
</blockquote>
<p>Ein beispiel für eine Remove-Funktion aus einer anderen Aufgabe</p>
<blockquote>
<p>bool remove(int Index)<br />
{<br />
bool geht = Index&lt;Groesse &amp;&amp; Index&gt;=0;<br />
if(geht)<br />
{<br />
for(int i=Index; i&lt;Groesse; ++i)<br />
Mitglieder[i] = Mitglieder[i+1];<br />
--Groesse;<br />
}<br />
return geht;<br />
}</p>
</blockquote>
<p>Jetzt hatte ich vor diese Remove funktion auf meine Aufgabe anzupassen indem ich als Indexwert die funktionsresultate nutze wobei ich mir aber auch nicht sicher bin ob es so umsetzbar ist:</p>
<blockquote>
<p>bool remove(VServerTyp vst)<br />
{<br />
string finde;<br />
cin&gt;&gt;finde;<br />
bool geht=findVServer(vst,finde)&lt;groesse &amp;&amp; findVServer(vst,finde)&gt;0;<br />
if (geht)<br />
{<br />
mitglieder[findVServer(vst,finde)]=mitglieder[findVserver(vst,finde)+1];<br />
--groesse;<br />
}<br />
}</p>
</blockquote>
<p>Und nun mein größtes Problem<br />
Aufgabenstellung: &quot; Erstellen sie zusätzlich im private-Beriech eine Hilfsfunktion findVserver(), die in einem Datenfeldabgelegten VServer-Struct and Hand dessen Namens sucht und dessen index im Datenfeld als Funktionsresultat liefert.</p>
<p>Daraus hab ich folgendes gebaut was meiner Meinung nach nur falsch sein kann und gerne wissen würde wie ich das umsetzen kann:</p>
<blockquote>
<p>int findVServer(VServerTyp vst,string suchname)<br />
{<br />
int p;<br />
for(int i=0;i&lt;groesse;++i)<br />
{<br />
if(Hostserver[i].servername=suchname)<br />
p=i;<br />
}<br />
return p;<br />
}</p>
</blockquote>
<p>Es geht hauptsächlich im die zeile</p>
<blockquote>
<p>if(Hostserver[i].servername=suchname)</p>
</blockquote>
<p>Da der struct im Datenfeld abgelegt ist und ich auf eine bestimmte variable (servername) zugreifen muss habe ich das gebaut. meiner meinung nach schwachsinn</p>
<p>ich hoffe das war jetzt nicht zu viel und dass mir hier jemand weiterhelfen kann</p>
<p>ich bedanke mich schonmal im vorraus</p>
<p>Mit freundlichen Grüßen<br />
isi</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060104</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060104</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Sat, 07 May 2011 16:49:38 GMT</pubDate></item><item><title><![CDATA[Reply to struct-datenfeld wert vergleichen on Sat, 07 May 2011 16:56:30 GMT]]></title><description><![CDATA[<p>Der Ansatz zur Suche ist schon so richtig (unter den gegebenen Voraussetzungen), allerdings ist der Vergleichs-Operator nicht =, sondern ==. Wenn der Name in einem char-Pointer gespeichert ist, benötigst du strcmp().</p>
<p>Aber ansonsten ist dein Code ziemlich fragwürdig. Ich würde lieber mit STL-Mitteln arbeiten als alles von Hand nachzubauen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060106</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060106</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 07 May 2011 16:56:30 GMT</pubDate></item><item><title><![CDATA[Reply to struct-datenfeld wert vergleichen on Sat, 07 May 2011 17:03:15 GMT]]></title><description><![CDATA[<p>Zudem bietet dieses Forum C++-Tags.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060109</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060109</guid><dc:creator><![CDATA[EOutOfResources]]></dc:creator><pubDate>Sat, 07 May 2011 17:03:15 GMT</pubDate></item><item><title><![CDATA[Reply to struct-datenfeld wert vergleichen on Sat, 07 May 2011 17:20:13 GMT]]></title><description><![CDATA[<p>danke schonmal</p>
<p>ich hab jetzt nochmal den kompletten quellcode überarbeitet da ich noch diverse fehlermeldungen hatte<br />
das ganze sieht jetzt so aus:</p>
<pre><code>#include &lt;iostream&gt;

using namespace std;

struct VServerTyp
{
  int id;
  string servername,ramkapazi,hddkapazi,ip,besitzer,anmeldename,kennwort;
};

class HostTyp
{
  private:
  int kapazitaet,groesse;
  string name;
  VServerTyp *Hostserver;

  public:
   HostTyp(int kap,string nam=&quot; &quot;)
   :kapazitaet(0),groesse(0), name(nam)
{
    Hostserver=new VServerTyp[kap];
    kapazitaet=kap;
}
  ~HostTyp()
  {
      delete[] Hostserver;
  }

    bool aufnehmen(VServerTyp vst)
    {

        bool geht=groesse&lt;kapazitaet;
        if(geht)
        {
            Hostserver[groesse]=vst;
            ++groesse;
        }
        return geht;
    }

      int findVServer(VServerTyp vst,string suchname)
  {
      int p;
      for(int i=0;i&lt;groesse;++i)
      {
          if(Hostserver[i].servername==suchname)
          p=i;
      }
      return p;
  }

    bool remove(VServerTyp vst)
    {
        string finde;
        cin&gt;&gt;finde;
        bool geht=findVServer(vst,finde)&lt;groesse &amp;&amp; findVServer(vst,finde)&gt;0;
        if (geht)
        {
            Hostserver[findVServer(vst,finde)]=Hostserver[findVserver(vst,finde)+1];
            --groesse;
        }
        return geht;
    }
};
</code></pre>
<p>jetzt hab ich noch noch folgenden fehler</p>
<blockquote>
<p>line 64 error: findVserver was not decleared in this scobe</p>
</blockquote>
]]></description><link>https://www.c-plusplus.net/forum/post/2060117</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060117</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Sat, 07 May 2011 17:20:13 GMT</pubDate></item><item><title><![CDATA[Reply to struct-datenfeld wert vergleichen on Sat, 07 May 2011 17:22:57 GMT]]></title><description><![CDATA[<p>hab den fehler gefunden..<br />
ich arbeite jetzt erstmal an der main funktion um zu schauen ob alles richtig läuft</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060119</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060119</guid><dc:creator><![CDATA[isi147]]></dc:creator><pubDate>Sat, 07 May 2011 17:22:57 GMT</pubDate></item><item><title><![CDATA[Reply to struct-datenfeld wert vergleichen on Sat, 07 May 2011 17:26:37 GMT]]></title><description><![CDATA[<p>C++ achtet ja auch auf Groß- und Klein-Schreibung - und findV<strong>s</strong>erver (hinten in Zeile 64) ist da etwas anderes als findV<strong>S</strong>erver (so heißt die Funktion tatsächlich).</p>
<p>Wenn du tatsächlich das Löschen von Hand erledigen willst, mußt du nicht nur den Nachfolger des zu löschenden Eintrags nach vorne verschieben, sondern alle Einträge bis zum Ende des (verwendeten) Arrays.</p>
<p>PS: Wirf den Zeiger über Bord und verwende lieber einen vector&lt;VServerTyp&gt; stattdessen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/2060121</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/2060121</guid><dc:creator><![CDATA[CStoll]]></dc:creator><pubDate>Sat, 07 May 2011 17:26:37 GMT</pubDate></item></channel></rss>