000
19.05.2008, 21:35 Uhr
pixar
|
Hallo,
mein guter Vorsatz für das Jahr 2008 ist es, mich endlich mal aufzuraffen die Programmierung mit C++ (und den Umgang mit einem freien Compiler) unter Windows zu erlernen.
Zum Ausprobieren diverser einfacher Beispielcodes verwende ich DevC++4. Derzeit bin ich dabei, die Grundlagen mit Hilfe diverser C++-Tutorials durchzuarbeiten, und hoffe ihr seht mir nach, dass ich hier jetzt schon Codefragen stelle, ohne rechten Durchblick zu haben.
Aber leider passiert es recht häufig, dass selbst wenn ich die Theorie hinter einem kleinen Beispiel-Code zu verstehen glaube, dieser beim Kompilieren eine Fehlermeldung erzeugt und nicht ausgeführt werden kann.
Deshalb wäre mir wichtiger, als die erwähnten Beispielcodes, dass ich eure Hilfe bei meinem Umsetzungsversuch einer Funktion zur Stringbearbeitung erhalte. (Unabhängig davon, ob sie vielleicht schon in irgendeiner "Include.h" vorkommt.) Ich erhoffe mir dadurch einen schnelleren Lernerfolg und ein besseres Syntaxverständis, um bald selbständig eigene Funktionen und Klassen schreiben zu können.
Der Aufbau eines C++-Programms ist mir relativ gut verständlich geworden. Funktionen werden vor der Main-Funktion definiert und von innerhalb der Main-Funktion aufgerufen.
Nicht so klar ist mir allerdings, wie eine Funktion ihre Parameterliste und die Parameter des Aufrufs verwendet. Um solche Sachen wie Parameterübergaben musste ich mich bisher nie selbst kümmern, und dementsprechend groß ist die Verwirrung, wo was hingehört.
Nachfolgend mal ein Pseudo-Code was die Funktion können soll:
QuellText: zu durchsuchender Textstring beliebiger Länge TextStueckNr: z.B. Text in Zeile x, Text nach Tabulator x, nach String "xyz", etc. TextTrenner: z.B. Zeilenumbruch, Tabulator, beliebiger String, etc. ZielText: gefundener Text beliebiger Länge z.B. in Zeile x, nach Tabulator x, nach Wort "xyz", etc. CaseFlag: 1 = Case sensitive (optional), 0 = kein Case sensitive BackwardFlag: 1 = Rückwärtssuche (optional), 0 = Vorwärtssuche
Code: |
string TextStueckRueckgabe (string QuellText, string ZielText, string TextTrenner, int TextStueckNr, int CaseFlag, int BackwardFlag) {
int LengthTextTrenner = AnzahlZeichen(TextTrenner), EndPosition; string CopyQuelle = QuellText;
// Suchen des TextTrenners bis das gesuchte Teilstueck erreicht wurde For (i=0; i<=TextStueckNr; i++) { find (string TextTrenner, string CopyQuelle, int PosTextTrenner)
// Falls kein Sucherfolg, Schleife abbrechen und Ergebnis leer zurückliefern if (PosTextTrenner > 0) { // Neues Suchfeld definieren CopyQuelle = CopyQuelle ab PosTextTrenner; // Positionsangabe aktualisieren if (i<>TextStückNr) { StartPosition = StartPosition + PosTextTrenner + LengthTextTrenner; else // Position des darauffolgenden Trennzeichens ermitteln um die Länge von ZielText berechnen zu können EndPosition = PosTextTrenner; int LengthZielText = EndPosition-StartPosition; return ZielText = TextAbschnitt(QuellText, StartPosition, LengthZielText); } } } };
int main() { // Funktionsaufruf: z.B. mit Textinhalt einer Datei TextStueckRueckgabe (string QuellText, string ZielText, string TextTrenner, int Flag) ... .. }
|
Schon mal Danke für eure Antworten und viele Grüße Pixar Dieser Post wurde am 19.05.2008 um 21:36 Uhr von pixar editiert. |