Zeichen eines String zählen
-
DirkB schrieb:
Wenn du es selber rechnen willst:
else frequenzen[j]=frequenzen[j]*10+(s[i]-'0');
Bei
int frequenzen[cnt+1]; // cnt+1 Elemente von 0 ... cnt int i=0; for (i=0;i<=cnt+1;i++) frequenzen[i]=0;
läuft dein Index zu weit. Der Maximale Index darf
cnt
sein.Danke, das mit dem Index hab ich mittlerweile auch schon bemerkt, daher kommt auch die einzelne 0 bei meiner ausgabe
-
DirkB schrieb:
Wenn du es selber rechnen willst:
else frequenzen[j]=frequenzen[j]*10+(s[i]-'0');
wenn ich die Zeile mit dem else durch deinen Vorschlag ersetze, erscheint bei mir folgender Fehler:
no match for 'operator-' in 's[i] - '0'ich verwende DEV-C++
-
Bah, das geht ja Schlag auf Schlag hier.
Ich habe trotzdem noch zwei Anmerkungen: Erstens ist
int frequenzen[cnt+1];
kein gültiges C++, und es gibt gängige Compiler, die so etwas schlicht nicht übersetzen (MSVC beispielsweise). Du solltest es durch
#include <vector> ... std::vector<int> frequenzen(cnt + i);
ersetzen.
Außerdem erzeugt atoi(&s[i]), wenn man es streng nimmt (und das sollte man als Programmierer), undefinertes Verhalten, weil der Standard nicht garantiert, dass std::string seine Daten an einem Stück speichert, und auch nicht, dass sie null-terminiert sind, wie atoi es erwartet. Das ist mit der genannten Lösung zwar hinfällig, aber behalt es im Hinterkopf, wenn du mal wieder so etwas machen willst. Man könnte stattdessen
atoi(s.c_str() + i)
schreiben; c_str() gibt einen C-String zurück, bei dem man sich auf diese Mechanik verlassen kann.
-
Wie wärs wenn du anfangen würdest C++ zu coden? Dein Code tut in den Augen weh und ist mehr C als C++.
Statt atoi nutzt man etwas anderes in C++: http://www.c-plusplus.net/forum/39488
Und die Anmerkungen von seldon würde ich mir sehr zu Herzen nehmen.
Außerdem, lad dir eine vernünftige IDE runter, Dev-C++ ist wohl die mieseste.
-
Dev-C++ ist vor allem hoffnungslos veraltet. Es gibt ein Projekt, das den Kram weiterentwickelt; ich kann aber nicht sagen, wie brauchbar das ist. Außerdem seien genannt: Codelite, Code::Blocks, und Visual Studio Express. Alle frei verfügbar und aktiv weiterentwickelt.
-
FreakY<3Cpp schrieb:
Wie wärs wenn du anfangen würdest C++ zu coden? Dein Code tut in den Augen weh und ist mehr C als C++.
Statt atoi nutzt man etwas anderes in C++: http://www.c-plusplus.net/forum/39488
Und die Anmerkungen von seldon würde ich mir sehr zu Herzen nehmen.
Außerdem, lad dir eine vernünftige IDE runter, Dev-C++ ist wohl die mieseste.Wenn du ein Problem damit hast, musst du meinen Code ja nicht lesen sondern hälst einfach mal deine Klappe, einen Beitrag der nicht hilfreich ist, kannst du dir auch sparen.
Das Dev-C++ funktioniert für das was ich mache super. Hatte vorher Visual Studio, aber da haben dann einige andere Microsoft-Programme nicht mehr das gemacht, was sie sollten. Media-Center hat sich mit Fehlermeldungen überschlagen und ging dann garnicht mehr.
-
bikstfri schrieb:
Wenn du ein Problem damit hast, musst du meinen Code ja nicht lesen sondern hälst einfach mal deine Klappe, einen Beitrag der nicht hilfreich ist, kannst du dir auch sparen.
Mein Beitrag enthielt eine Verlinkung zur besseren Variante von atoi, machte dich drauf aufmerksam das du mehr C als C++ codest und ich gab dir den Rat, eine neue IDE aufzusuchen.
bikstfri schrieb:
Das Dev-C++ funktioniert für das was ich mache super. Hatte vorher Visual Studio, aber da haben dann einige andere Microsoft-Programme nicht mehr das gemacht, was sie sollten. Media-Center hat sich mit Fehlermeldungen überschlagen und ging dann garnicht mehr.
Volle Punktzahl für das beste Argument weiterhin Dev-C++ zu nutzen. Es hat sich mit Fehlermeldungen überschlagen und das gibt dir nicht zu denken übrig? Hauptsache du hast eine IDE und einen Kompilierer der jeden Mist schluckt und sich dann wundern wenn man mit Code aus C in ein C++ Sub-Forum kommt, nichts funktioniert und trotzdem zu seiner schönen IDE steht, welchen Code kompiliert, bei dem meine Errors und Warnings spuckt.
Und selbst wenn Visual Studio nicht funktioniert hat, gibt es immer noch genügend andere und bessere IDEs, z.B. die, die seldon erwähnt hat. Wenn du hier schon gesagt bekommst, dass Dev-C++ schlecht ist, bringt dein Argument "es läuft" auch nicht viel. Mit einem Auto aus dem Jahre 1950 komm ich "wahrscheinlich" auch an mein Ziel, aber ich habe wesentlich mehr Komplikationen als mit einem neu modernen Auto das ein Navigationssystem enthält. Alleine das String kann schon nicht richtig sein und selbst bei Dev-C++ wundert es mich, dass es das kompiliert.
Wenn du hilfreiche Kritik nicht verträgst, frag doch dein Hilfecenter von Dev-C++.
-
FreakY<3Cpp schrieb:
Volle Punktzahl für das beste Argument weiterhin Dev-C++ zu nutzen. Es hat sich mit Fehlermeldungen überschlagen und das gibt dir nicht zu denken übrig? Hauptsache du hast eine IDE und einen Kompilierer der jeden Mist schluckt und sich dann wundern wenn man mit Code aus C in ein C++ Sub-Forum kommt, nichts funktioniert und trotzdem zu seiner schönen IDE steht, welchen Code kompiliert, bei dem meine Errors und Warnings spuckt.
Da solltest du lieber mal lesen lernen, bevor du antwortest
nicht das Visual Studio hat sich mit fehlermeldungen überschlagen.
die anderen Programme haben fehlermeldungen geliefert und nicht das Visual studio.
Aber wenn du nicht lesen kannst, dann sei einfach ruhig.
-
Das ist immer noch kein Grund Dev-C++ zu nutzen. Außerdem habe ich noch nie was von solch einem Problem gehört. Wahrscheinlich sind deine Installationskünste genauso gut wie deine Argumentationen. Wenn du schon Hilfe in einem Forum von Leuten bekommst, die sich Zeit für dein Problem nehmen, sollte man etwas netter reagieren. Ich hätte natürlich auch schreiben können
"Hey lieber bikstfri. Hier ist der komplette und funktioniere Code:
...
Ach außerdem wollte ich dir noch sagen, Dev-C++ ist veraltet, aber wenn es dir gefällt, benutz es ruhig, ist schon okay. Einen mit Sahne betreufelten Keks kriegst du auch noch von mir."
Anstatt sich dann mal zu erkundigen wie man das Problem behebt, benutzt du Software aus dem letzten Jahrhundert.
"Well, my code looks shitty. At least it runs!"
-
FreakY<3Cpp schrieb:
Das ist immer noch kein Grund Dev-C++ zu nutzen. Außerdem habe ich noch nie was von solch einem Problem gehört. Wahrscheinlich sind deine Installationskünste genauso gut wie deine Argumentationen. Wenn du schon Hilfe in einem Forum von Leuten bekommst, die sich Zeit für dein Problem nehmen, sollte man etwas netter reagieren. Ich hätte natürlich auch schreiben können
"Hey lieber bikstfri. Hier ist der komplette und funktioniere Code:
...
Ach außerdem wollte ich dir noch sagen, Dev-C++ ist veraltet, aber wenn es dir gefällt, benutz es ruhig, ist schon okay. Einen mit Sahne betreufelten Keks kriegst du auch noch von mir."
Anstatt sich dann mal zu erkundigen wie man das Problem behebt, benutzt du Software aus dem letzten Jahrhundert.
"Well, my code looks shitty. At least it runs!"Tja wenn du noch nie davon gehört hast, dass durch die Installation von einem Programm ein anderes mal nicht mehr so läuft wie es soll, dann hast du wahrscheinlich keine Ahnung vom Installieren von Programmen.
Und was das Dev-C++ betrifft. Es reicht für das was ich machen will völlig aus PUNKT
man braucht ja auch keinen nagelneuen 40-Tonner, um einen Sack Kartoffeln von A nach B zu bewegen. Genauso brauch ich kein noch umfangreicheres neues Programm für die exakt 5 Programme, die ich in diesem Semester Programmieren muss. Da tut es auch ein etwas Älteres, nicht so umfangreiches Werkzeug.
Und am Semesterende fliegt das C++ sowieso wieder weg, da kann ich noch mindestens 5 Programmiersprachen, die besser sind.
-
Mach was du willst, aber
bikstfri schrieb:
Und am Semesterende fliegt das C++ sowieso wieder weg, da kann ich noch mindestens 5 Programmiersprachen, die besser sind.
made my day.