substring
-
Noch ein Fix:
#include <string> #include <iostream> void substr(char *a, const char *b); int main() { char a[] = "hallo du alter , alt sein ist gut"; char b[] = "alt"; substr(a, b); printf("%s", a); } void substr(char *a, const char *b) { const unsigned int lenOfA = strlen(a); const unsigned int lenOfB = strlen(b); if (lenOfB > lenOfA) { return; } unsigned int pos = 0; for (unsigned int i = 0; i < strlen(a); ++i, ++pos) { for (unsigned int j = 0; j < strlen(b); ++j, ++i) { if (a[i] != b[j]) { i -= j; break; } } a[pos] = a[i]; } a[pos] = '\0'; }Müsste nun so hinhauen.
-
In Zeile 28 und 30 muss man noch strlen durch die Variablen lenOfA bzw. lenOfB ersetzen. Ist aber letztendlich nichts tragisches, hab die Änderung versäumt. Aber es geht ja ums Prinzip.
-
omfg schrieb:
Tachyon schrieb:
std::string...blurry ist ein Anfänger und will wahrscheinlich wissen wie man mit C-Strings umgeht. Soll er etwa das Kapitel C-String auslassen nur weil es in C++ std::string gibt? BS.
Nun, ich kann Tachyon schon verstehen. Wenn man sich so blurrys Fragen anschaut, stellt man fest, daß sämtliche Basics nicht vorhanden sind. Der Umgang mit einem Debugger scheint ihm genauso schwer zu fallen wie selbstständige Problemlösungsfindung. Seine hier angebrachte Funktion tut ja nicht einmal ansatzweise das, was sie tun soll.
Wenn er jetzt schon überfordert ist, wie soll das denn gehen, wenn er mal produktiv arbeiten will.
Softwareentwicklung heißt in erster Linie, creativ Lösungen für ein Problem zu finden. Creativität kann man nicht wirklich lernen, die hat man oder nicht. Und besser wird die Creativität sicher nicht, wenn man bei jedem noch so kleinen Problem andere fragt.
Ich glaube zwar nicht an irgedwelche Götter. Trotzdem passt hier dieser Spruch:
"Hilf Dir selbst, dann hilft Dir Gott".Um blurrys Tatendrang jetzt nicht gleich im Kein zu ersticken, empfehle ich:
Lerne Deine Entwicklunsgumgebung kennen.
Lerne den Debugger:
- Wie trace ich das Programm?
- Wie inspiziere ich den Inhalt von Variablen?
- Wie setzte ich Breakpoints?
- Wie setze ich Watchpoints?usw. usf.
Wenn Du Deine Entwicklungsumgebung gut genug kennst, kannst Du es wagen, eigene Algorithmen zu entwicklen. Überleg Dir:
Was sind die Eingangswerte, was sind die Ausgangswerte.
Welche Schritte sind erforderlich genau das zu erreichen.
Überleg Dir das gut und spiele diese Schritte in Gedanken durch.
Dann - erst dann, nicht vorher - setzt Du dich an den Computer und codierst diese Schritte in der Sprache Deine Wahl.
Dann kommt der Debugger zum Zuge: Du prüfst, ob genau das passiert, was Du Dir vorher ausgedacht hast.Wenn Du das oft genug gemacht hast und Du eine gewisse Routine entwickelt hast, bist Du auch in der Lage, einen Algorithmus erst beim Codieren zu entwicklen.
mfg Martin
-
Welches Buch ist denn gut?
Ihr meint bestimmt Bjarne Stroustrup

-
blurry333 schrieb:
Welches Buch ist denn gut?
Ihr meint bestimmt Bjarne Stroustrup

Ja, der ist auch gut. Aber sag nicht, dass es in diesem Forum nicht genügend Threads mit Buchempfehlungen gibt.
-
das ist ja das Problem.
Es gibt ein gutes Buch und das will ich .
Jeder empfiehlt was anderes.
-
blurry333 schrieb:
das ist ja das Problem.
Es gibt ein gutes Buch und das will ich .
Jeder empfiehlt was anderes.So ist das mit Empfehlungen.. Entscheiden musst du dich selbst!
-
Hallo blurry,
ich kann dich gut verstehen. Ich bin verglichen mit den anderen auch ein Anfänger, habe noch viel zu lernen und frage manchmal so oft nach, bis die anderen leicht genervt sind :D. Ich habe damals auch ein gutes Buch gesucht. Zwar könnte ich und sicher auch die anderen die eins empfehlen, doch zum Schluss musst Du selbst entscheiden. Geh in die Buchhandlung, schau dich bei Amazon um. Dann kauf das, was dich am meisten anspricht. Außerdem sollte man auch mehrere Bücher lesen, um seinen eigenen Stil zu entwickeln.edit: Drakon hat es mit einem Satz hinbekommen, was ich dir auch sagen wollte
- zu spätlg, freakC++
-
blurry333 schrieb:
das ist ja das Problem.
Es gibt ein gutes Buch und das will ich .
Jeder empfiehlt was anderes.Das ist einfach. Jedes Buch setzt bestimmte Dinge voraus, die der Leser kennen/können muß. Manche Bücher erwarten nur, daß der Leser eben Lesen kann. Andere erwarten, daß der Leser, weiß wo der Einschaltknopf des Rechners ist. Und wieder andere erwarten, daß der Leser schon mehrjährige Erfahrung hat.
Gehe in eine gute Buchhandlung. Blättere durch verschiedene Bücher, lese ein zwei Kapitel und entscheide selbst, ob Dich das Buch langweilt oder überfordert. Wenn weder noch, kaufe es.
So einfach ist das.
mfg Martin
-
was kann man denn sonst noch so mit einem String anstellen ?
Was auch nicht einfach ist die Kommentare aus einem sTring zu entfernen.
fällt einem noch was kniffliges ein ?
-
blurry333 schrieb:
was kann man denn sonst noch so mit einem String anstellen ?
In etwa das:
http://www.cplusplus.com/reference/string/string/
-
Ich glaube blurry333 ist ein Bot.
-
weil das bisher keiner erwähnt hat (hab zumindest nichts gesehen):
blurry333 schrieb:
void substr(char x[],char y[]) { ... x[i]=x[i+o]; // hier unbehandelte Ausnahme gleich beim ersten Durchlauf !! ... } int main() { char* y="hallo du alter , alt sein ist gut"; char* x="alt"; substr(y,x); }Ich weiß nicht, wie es bei anderen Compilern ist, aber der GCC spuckt hier eine Warnung aus:
warning: deprecated conversion from string constant to 'char*'und zeigt auf die zwei Zeilen in der main, die x und y initialisieren.
Die Sache ist die, dass String-Literale in C++ constante Arrays sind, die nicht verändert werden können/dürfen.
<mit-dem-zaunpfahl-wink>
Das sind C++ Basics, die in jedem guten Buch erklärt werden.
</mit-dem-zaunpfahl-wink>kk
-
@krümelacker
Welches Buch benutzt du konkret ?
-
blurry333 schrieb:
@krümelacker
Welches Buch benutzt du konkret ?Im Moment gar keins.
Die Schnittmenge von den C++ Büchern, die ich schon gelesen habe, und die, die ich weiterempfehlen kann, ist:
- "The C++ Programming Language" (Special Edition) by Bjarne Stroustrup
- "Effective C++" (3rd Edition) by Scott Meyers
- "C++ Templates -- The Complete Guide" by Vandervoorde and Josuttis
Das Buch "Modern C++ Design" hab ich hier auch liegen, kann ich aber nicht empfehlen. Stroustrup's Buch setzt Programmiererfahrung voraus, ist also eher für Umsteiger als Anfänger, und die anderen beiden bauen auf C++ Kenntnissen auf. Meyers' Buch ist aber Pflicht, würde ich sagen.
-
krümelkacker schrieb:
Das Buch "Modern C++ Design" hab ich hier auch liegen, kann ich aber nicht empfehlen.
Es ist keine Pflichtlektüre, wie das von Meyers, aber wenn man interessiert an ein paar Spielereien mit templates und ein paar Hintergründe kennen lernen möchte (smart Pointer, Typlisten usw.), dann ist es sicher zu empfehlen.