Anzahl eines Buchstabens im string ermitteln
-
ähm, <newbie> hat doch ausdrücklich nach einem Weg ohne Schleife gefragt.
-
Original erstellt von DrGreenthumb:
ähm, <newbie> hat doch ausdrücklich nach einem Weg ohne Schleife gefragt.Was du nicht sagst!
-
Original erstellt von Spieleprogrammierer:
Was du nicht sagst!Ja und wieso bitte, beschwerst Du dich dann über HumeSikkins, dass er solch ein count()-Konstrukt einem Anfänger vor die Füße wirft?
-
Original erstellt von DrGreenthumb:
Ja und wieso bitte, beschwerst Du dich dann über HumeSikkins, dass er solch ein count()-Konstrukt einem Anfänger vor die Füße wirft?Ganz einfach: Wenn man Anfänger ist, dann will man einen einfachen Weg finden. Ich meine man hätte auch sagen können, dass er den String in Char-Array umwandeln kann, dann die einzelnen Elemente durchsuchen könnte, das ist so, als würde dich einer fragen "Wo gehts'n hier nach Rom?" Und jemand sagt "Die Autobahn entlang nach München und dann über die Alpen" und du dann sagst "Ne, halt, moment, es geht auch ohne Autobahn (Schleifen): Nimm nen Kompas, lauf immer richtung Süden durch die ganzen Wälder". So in der Art, wobei die Autobahn viel schneller geht zu fahren. (Also Schleifen schneller zu programmieren).
Klingt vielleicht wirr, aber wer's versteht weiß auch, warum immernoch Schleifen zu empfehlen sind.
-
Original erstellt von Spieleprogrammierer:
Klingt vielleicht wirrIn der Tat, ich versteh dich überhaupt nicht.
Wenn jemand fragt wie es ohne Schleife zu lösen ist, dann will er doch nicht hören "Du bist Anfänger. So geht's mit einer Schleife...".
-
Naja, hab ich auch nicht gesagt, ich meinte nur, dass ich es ihm empfehle, bei den Schleifen zu bleiben.
-
gut, du empfiehlst ihn dass - aber ich habe immer noch keine gegenargumente gehoert (siehe Humes Link)
Anfaenger zu sein zaehlt nicht.
er kann selber sagen dass es ihm zu kompliziert ist und ers gern erklaert haben moechte, bzw. wissen moechte wie count() zu implementieren waere.aber solange er das nicht fragt sehe ich keinen grund ihm schwachsinn anzugewoehnen - da brauchts dann wieder n paar Monate bis er sich das wieder abgewoehnt hat...
wie soll man so guten stil programmieren lernen??
-
Original erstellt von Spieleprogrammierer:
**(Also Schleifen schneller zu programmieren).
**Also ich find ein count(s.begin(),s.end(),...); immer noch schneller programmiert wie eine schleife ;o)
-
Vom Text her, aber wenn er damit nix anzufangen weiß, dann schaut er wieder ewig lang in deisen Hilfen nach, die meistens garnicht helfen, und so zieht sich das in die länge. Aber bei Schleifen wieß jeder, was damit gemeint ist, schreibt es hin, kortrigiert vielleicht noch kleinere Fehler und fertig.
-
... und so ziehen die einen die sich die Arbeit mal gemacht haben die Hilfe zu benutzen an denen vorbei die immer schnell mit den schleifen fertig waren ...
Mal im ernst, ich denke jeder hat verstanden was Du meinst. Dennoch sollte sich jeder mit neuem auseinandersetzen. Irgendwann passiert es sonst das andere fertig sind wärend Du Dir noch gedanken um die Schleife machst.
Hast Du Dir schon mal die Algos angeschaut mit Iteratoren etc. ? Alles hab ich da auch nicht verstanden aber sehr hilfreich das ganze und in vielen Situationen würde ich mehr Zeit damit verbingen die schleife zu coden (Hach mist ich lauf nen Element zu viel....) als die Algos zu verwenden.
-
was ist an "count" unverständlich?
Hume hat übrigens einen guten Link angegeben. schon durchgelesen?
-
Nix, für dich nicht, für mich nicht, aber für einem Anfänger schon, und Schleifen sind einfach mal eleganter, ob das hier jemand glaubt oder nicht.
-
(bezüglich deiner lösung ohne count)
woher soll der benutzer denn wissen, das std::string die methode length kennt? und den operator[]? du siehst, neues lernen muss man in jedem fall.und nebensächlich:
cout<<ch<<" kommt "+z+" mal im Wort/Satz vor."; //sollte wohl heißen: cout<<ch<<" kommt "<<z<<" mal im Wort/Satz vor.";
-
Original erstellt von Spieleprogrammierer:
dann schaut er wieder ewig lang in deisen Hilfen nach, die meistens garnicht helfenna hoffentlich tut er das - wenn er wirklich in die hilfe schaut, haben wir schon viel gewonnen.
denn dann wird er sehen, dass das garnicht so unuebersichtlich ist und das man eigentlich alles finden kann was man sucht (man muss es halt nur ueben)
und wenn er schon frueh anfaengt nachzusehen, dann sparen wir uns fragen zu einzelnen funktionen zu beantworten, denn dann kann er ja selber nachsehen...
jeder der seine hilfe nicht bedienen kann, der sollte das schleunigst ueben.
-
Original erstellt von davie:
**(bezüglich deiner lösung ohne count)cout<<ch<<" kommt "+z+" mal im Wort/Satz vor."; //sollte wohl heißen: cout<<ch<<" kommt "<<z<<" mal im Wort/Satz vor.";
**
Jaja, ich sag ja: Kleinlich. Tut mir leid, ich programmiere nunmal in Windowsprogrammierung, und da kann man Strings einfach so addieren.
-
Original erstellt von Shade Of Mine:
**na hoffentlich tut er das - wenn er wirklich in die hilfe schaut, haben wir schon viel gewonnen.denn dann wird er sehen, dass das garnicht so unuebersichtlich ist
**template<class InputIterator, class T> iterator_traits<InputIterator>::difference_type count(InputIterator first, InputIterator last, const T& value);
... ohne Worte ...
-
Das hat nichts mit kleinlichkeit zu tun.
Wenn ein Anfänger frisch Programmiert und was falsches gezeigt bekommt tut er sich schwer zu verstehen wieso es eigentlich anderst laufen sollte....
-
hier ist ja heute wirklich was geboten
-
Original erstellt von Spieleprogrammierer:
Jaja, ich sag ja: Kleinlich. Tut mir leid, ich programmiere nunmal in Windowsprogrammierung, und da kann man Strings einfach so addieren.-
sind unter windows strings auch nur char arrays (bzw. unsigned short arrays)
-
weisst du was bei deinem code passiert?
Wenn ja, dann sag mir mal wieviele Ctor/Dtor aufrufe dein code erzeugt? -
du solltest auch erstmal klein anfange bevor du dich an die 'windowsprogrammierung' (vermutlich MFC?) wagst...
-
-
Original erstellt von Bashar:
... ohne Worte ...ich meine die hilfe :p
da steht (zumindest bei mir) immer ein schoenes beispiel drunter
und frueher oder spaeter wird man sich an diese beschissene syntax gewoehnen muessen...