x
-
So gemacht :). Gibt es nicht eine Möglichkeit mit einem array? Hab bisher Strings noch nicht gemacht und würd gern die Sache mit einem Array machen.
-
Benutz strcmp() aus <cstring>
-
fuwangschu schrieb:
So gemacht :). Gibt es nicht eine Möglichkeit mit einem array? Hab bisher Strings noch nicht gemacht und würd gern die Sache mit einem Array machen.
Warum ?
Gerade als Anfänger ist string viel einfacher, sicherer und sauberer.
Ich bin immer wieder erstaunt, wie weit verbreitet die These ist, Anfänger sollten "erstmal mit char* rumfrickeln, bevor sie string benutzen dürfen" (braucht man irgendeinen "char*-Weihe" vorher ?)....
Gruß,
Simon2.
-
Hmm tjo bin auch Vertreter der Ansicht @Simon2, dass man die "char-Weihe" braucht

#include <iostream.h> #include <conio.h>So nicht korrekt. Laut Standard haben die Standardheader kein .h im Namen
conio.h braucht man nicht 
=>#include <iostream>class person { std::size_t m_countChilds; unsigned long m_balance; char* m_name; char m_familyStatus[6]; public: person(const char* name, const char* familyStatus) : m_countChilds(0), m_balance(0L) { m_name = new char [std::strlen(name) + 1]; std::strcpy(m_name, name); std::strncpy(m_familyStatus, familyStatus, 5); } ~person() { delete [] m_name; } public: friend std::ostream& operator << (std::ostream& out, person const& data) { out << "Inhaber: " << data.m_name << " (" << data.m_familyStatus << ")" << "\nKontostand: " << data.m_balance; } public: void push_childs(std::size_t count) { m_countChilds += count; } std::size_t pop_child() { return m_countChilds--; } void pay_in(unsigned long count) { m_balance += count; } std::size_t pay_off(unsigned long count) { const unsigned long tmp(m_balance); m_balance -= count; return tmp; } }; class bank { public: void push_person(const char* name, const char* familyStatus) { m_customers.push_back(person(name, familyStatus)); } friend std::ostream& operator<<(std::ostream& out, bank const& data) { for (std::size_t i = 0; i < data.m_countCustomers; ++i) out << "------- Inhaber " << i + 1 << " -------" << data.m_customers[i] << "....... .... .......\n"; } protected: person* m_customers; std::size_t m_countCustomers; };
Nen bissel viel auf einmal und nicht gestestet ... keine Zeit ... nur kurz hier reingetippt ..if (m_countChilds == 0 && std::strcmp(m_familyStatus, "ledig") == 0) { m_balance = (m_balance / 100) * 116); std::cout << "Sie bekommen 16% auf ihr Guthaben gutgeschrieben. Neuer Kontostand: " << m_balance << std::endl; }...

#include <iostream> #include <cstring>nicht vergessen ^^
-
(D)Evil schrieb:
Hmm tjo bin auch Vertreter der Ansicht @Simon2, dass man die "char-Weihe" braucht :P...
Weiß ich (haben wir bestimmt schonmal drüber dikutiert hier
), bin aber (vorsichtig ausgedrückt) "hochgradig unüberzeugt" und fühloe mich durch die Existenz dieses Threads wieder einmal bestätigt. :p 
Wenn jemand mit "Text" arbeiten möchte, sollte er das tun (sprich "std::string")... wenn er sich für Pointerarithmetik interessiert, soll er das tun. Aber er sollte nicht (vollkommen unnötigerweise) Zweiteres machen müssen, um Ersteres zu erreichen.Gruß,
Simon2.
-
@Simon2: Ja haben wir ... deswegen gehe ich dajetzt auch nicht mehr drauf ein

@fuwangschu: "dio = (spar / 100) * 116" ist übrigens identisch (mathematisch gesehen) mit "dio = spar * 1,16" ...
-
Nur möchte ich nur die ausstehenden Zinsen nachgezahlt bekommen, die bei dem Verlust durch Division zweier Ganzzahlen auf die Jahre hinweg entstehen

Grüße...
Heiko
-
hmm
const double res(100 * 1.25);... hmm deiner Meinung nach wäre jetzt in res 100. Sollte 125 drin sein

-
Ich weiß schon, warum ich bei solchen dingen immer
a) gleich den brauchbaren Datentyp oder
b) ein explizites static_cast<brauchbarer Datentyp>(...)
verwende.
Das ständige implizite <denglish>gecaste</denglish> verwirrt ja auch nur.

OT: @(D)Evil: warst du im Urlaub, ich habe schon lange keine einsteigerfreundlichen Listings mehr gesehen.
-
OT: @(D)Evil: warst du im Urlaub, ich habe schon lange keine einsteigerfreundlichen Listings mehr gesehen.
Weißnicht ... bin oft im Urlaub ^^ Musst schon einen Zeitraum nennen
