<?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[zuweisen eines strings]]></title><description><![CDATA[<p>meine aufgabe ist es, zur vorgegebenen deklaration der klasse die methodendefinitionen zu erstellen. das sieht bisher so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Bankaccount{
      private:
      char depositor[20];
      char number[20];
      double balance;
      public:
      Bankaccount(const char *c_depositor,const char *c_number, double c_balance=0.0);
      void show();
      void deposit(double cash);
      void withdraw(double cash);
};

void Bankaccount::show(){
     cout &lt;&lt; &quot;name of depositor: &quot; &lt;&lt; depositor &lt;&lt; endl;
     cout &lt;&lt; &quot;account number: &quot; &lt;&lt; number &lt;&lt; endl;
     cout &lt;&lt; &quot;balance: &quot; &lt;&lt; balance &lt;&lt; endl;
     }

void Bankaccount::deposit(double cash){
     balance+=cash;
     }

void Bankaccount::withdraw(double cash){
     balance-=cash;
     }

Bankaccount::Bankaccount(const char *c_depositor,const char *c_number, double c_balance){
                               depositor=c_depositor;
                               number=c_number;
                               balance=c_balance;
                               }

int main()
{
    Bankaccount account1;
    account1.show();

system(&quot;PAUSE&quot;);
return 0;   
}
</code></pre>
<p>leider kompiliert das nicht, da die zuweisung des pointers &quot;c_depositor&quot; auf den string &quot;depositor&quot; offenbar unzulässig ist. ich weiss, ich könnte das ganze auch machen, indem ich die string-klasse von c++ verwende, nur ist der definitionsteil der klasse schon vorgegeben, ich darf da also nichts ändern (nur die funktionsdefinitionen muss ich erstellen). wie kann ich dem character array einen string zuweisen (wenn nicht per pointer, wie dann)?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/204139/zuweisen-eines-strings</link><generator>RSS for Node</generator><lastBuildDate>Thu, 08 Oct 2026 08:53:57 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/204139.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 30 Jan 2008 16:23:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to zuweisen eines strings on Wed, 30 Jan 2008 16:23:20 GMT]]></title><description><![CDATA[<p>meine aufgabe ist es, zur vorgegebenen deklaration der klasse die methodendefinitionen zu erstellen. das sieht bisher so aus:</p>
<pre><code class="language-cpp">#include &lt;iostream&gt;
using namespace std;

class Bankaccount{
      private:
      char depositor[20];
      char number[20];
      double balance;
      public:
      Bankaccount(const char *c_depositor,const char *c_number, double c_balance=0.0);
      void show();
      void deposit(double cash);
      void withdraw(double cash);
};

void Bankaccount::show(){
     cout &lt;&lt; &quot;name of depositor: &quot; &lt;&lt; depositor &lt;&lt; endl;
     cout &lt;&lt; &quot;account number: &quot; &lt;&lt; number &lt;&lt; endl;
     cout &lt;&lt; &quot;balance: &quot; &lt;&lt; balance &lt;&lt; endl;
     }

void Bankaccount::deposit(double cash){
     balance+=cash;
     }

void Bankaccount::withdraw(double cash){
     balance-=cash;
     }

Bankaccount::Bankaccount(const char *c_depositor,const char *c_number, double c_balance){
                               depositor=c_depositor;
                               number=c_number;
                               balance=c_balance;
                               }

int main()
{
    Bankaccount account1;
    account1.show();

system(&quot;PAUSE&quot;);
return 0;   
}
</code></pre>
<p>leider kompiliert das nicht, da die zuweisung des pointers &quot;c_depositor&quot; auf den string &quot;depositor&quot; offenbar unzulässig ist. ich weiss, ich könnte das ganze auch machen, indem ich die string-klasse von c++ verwende, nur ist der definitionsteil der klasse schon vorgegeben, ich darf da also nichts ändern (nur die funktionsdefinitionen muss ich erstellen). wie kann ich dem character array einen string zuweisen (wenn nicht per pointer, wie dann)?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1446457</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446457</guid><dc:creator><![CDATA[theGiggler]]></dc:creator><pubDate>Wed, 30 Jan 2008 16:23:20 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisen eines strings on Wed, 30 Jan 2008 16:25:26 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>Schau mal nach strncpy.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1446458</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446458</guid><dc:creator><![CDATA[Braunstein]]></dc:creator><pubDate>Wed, 30 Jan 2008 16:25:26 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisen eines strings on Wed, 30 Jan 2008 17:49:46 GMT]]></title><description><![CDATA[<p>Schau lieber nach std::string und erschlag denjenigen, der dir die Aufgabe gegeben hat, mit dem Hinweis, das char-Arrays altbacken sind und eigentlich nur dann Sinn machen, wenn die Performance gegen std::string spricht. <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f621.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--pouting_face"
      title=":rage:"
      alt="😡"
    /> Und so weit, dass ihr schon auf Performance achtet, seid ihr gemessen an der Aufgabenstellung nicht.</p>
<p>/edit: ok, jetzt erst gelesen dass du über string Bescheid weißt. Bleibt nurnoch die Beseitigung des Aufgabenstellers <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/1446536</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446536</guid><dc:creator><![CDATA[pumuckl]]></dc:creator><pubDate>Wed, 30 Jan 2008 17:49:46 GMT</pubDate></item><item><title><![CDATA[Reply to zuweisen eines strings on Thu, 31 Jan 2008 13:03:37 GMT]]></title><description><![CDATA[<p>Jap der Aufgabensteller sollte erschossen werden, da er operatoren usw. nicht zu kennen scheint <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="😉"
    /> UND ein using namespace im Header hat <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
<pre><code class="language-cpp">class Bankaccount
{
    char depositor[20];
    char number[20];
    double balance;

public:
    Bankaccount(const char* depositor, const char* number, double balance=0.0);
    void show();
    void deposit(double cash);
    void withdraw(double cash);
};
</code></pre>
<p>... oder nutzt du schon irgendwo da was aus dem Header &lt;iostream&gt;?<br />
Achja pack mal Include-Guards rein(auch wenn es nicht vorgegeben war ...)</p>
<p>Dann im Sourcefile, brauchst du den Header ...</p>
<pre><code class="language-cpp">#include &quot;Bankaccount.hpp&quot; // class Bankaccount
#include &lt;iostream&gt; // std::cout
#include &lt;cstring&gt; // std::strncpy

void Bankaccount::show()
{
    std::cout &lt;&lt; &quot;\nname of depositor: &quot; &lt;&lt; depositor
              &lt;&lt; &quot;\naccount number: &quot; &lt;&lt; number
              &lt;&lt; &quot;\nbalance: &quot; &lt;&lt; balance &lt;&lt; std::endl;
}

void Bankaccount::deposit(double cash)
{
    balance += cash;
}

void Bankaccount::withdraw(double cash)
{
    balance -= cash;
}

Bankaccount::Bankaccount(const char* ptr_depositor, const char* ptr_number, double balance)
    : balance(balance) // Initialisierungsliste
{
    std::strncpy(depositor, ptr_depositor, 20); // Max. Anzahl an Zeichen die in depositor passen (d.h. Größe des Arrays) inklusive Nullterminierungszeichen
    std::strncpy(number, ptr_number, 20);
}
</code></pre>
<p>So ist es doch schon korrekter.</p>
<p><strong>Hinweiß</strong><br />
Das geht wesentlich schöner, geht aber nicht, wenn du nichts im Header verändern darfst!</p>
<p><strong>Bearbeitung</strong><br />
Also, du hast einmal:</p>
<pre><code class="language-cpp">char arr[20];
</code></pre>
<p>und einmal</p>
<pre><code class="language-cpp">const char* ptr;
</code></pre>
<p>... dass das nicht hinhauen kann, sollte doch klar sein.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1446933</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1446933</guid><dc:creator><![CDATA[*D*Evil]]></dc:creator><pubDate>Thu, 31 Jan 2008 13:03:37 GMT</pubDate></item></channel></rss>