Jestertales Geschrieben 4. Februar 2002 Geschrieben 4. Februar 2002 Hallo, kann mir jemand verraten, ob es möglich ist, die Elemente einer AnsiString Variablen einzeln anzusteuern? Also praktisch wie bei einer char Variablen (wort[4])? Ich möchte ein wenig mit Suchen-Ersetzen Funktionen im C++ Builder spielen, aber bisher komme ich immer nur an den ersten Buchstaben meiner RichEdit-Komponente Danke im Voraus! Zitieren
Klotzkopp Geschrieben 4. Februar 2002 Geschrieben 4. Februar 2002 Vielleicht hilft das: http://www.bcbdev.com/faqs/faq40.htm Zitieren
Jestertales Geschrieben 5. Februar 2002 Autor Geschrieben 5. Februar 2002 Danke, das .c_str() ist auch normalerweise immer mein erster Gedanke, aber ich denke mir mal, daß ich diesmal den Wald vor lauter Bäumen nicht sehe oder schlicht und ergreifend keine Ahnung habe, von dem, was ich versuche Hier einmal der Code, den ich erstellt habe: void __fastcall TForm1::Button1Click(TObject *Sender) { char eintrag[50] = {0}; AnsiString str = "Hallo Du Nase"; *eintrag = *str.c_str(); RichEdit2->Text = eintrag; } Wenn ich es so dort stehen habe, dann befindet sich in "eintrag" nur der Buchstabe "H". Ich möchte aber natürlich den ganze Satz übertragen... ach, Zeiger, *verzweifel* Bye, Jestertales Zitieren
Klotzkopp Geschrieben 5. Februar 2002 Geschrieben 5. Februar 2002 Naja, Du kopierst auch nur ein Zeichen. Wenn Du einen char* dereferenzierst, dann bekommst Du einen char. Wie wärs mit strcpy? Zitieren
Uruz Geschrieben 5. Februar 2002 Geschrieben 5. Februar 2002 Zuerst mal zu der Initialisierung Ein String kann bei der Definition initialisiert werden mit [*]Einer vorgegebenen Srtring-Konstanten [*]Einer bestimmten Anzahl von Zeichen [*]Einem bereits definierten String oder einem Teil davon [*]Wenn keine explizite Initialisierung durchgeführt wird (4), dann wird ein leerer String mit der Länge 0 er-zeugt. Die aktuelle Länge eines Strings wird intern mitgespeichert. Diese kann man durch die Methoden length() oder size () abfragen. [/list=1] Beispiel: string meldung („Guten Morgen, Frau Schmidt!“); cout << meldung.length(); // Ausgabe: 27 Zu (1): string meldung = „Guten Morgen, Frau Schmidt!“ ; String-Konstante Zu (2): string linie(50,'*'); // Ausgabe von 50 '*' Zu (3): string text; ... string kopie(text); // mit einem definierten String string anfang(text,0,10); // mit einem Teil davon String- // Name beginnend ab der // Stelle endend mit der Stelle Zu (4): string leer; // String ist leer; Länge = 0 Jetzt zu Ausschneiden und Ersetzen Mit der Methode insert() erreicht man, dass in einem String eine Zeichenfolge eingefügt wird. string s1("Frau Schmidt"); s1.insert(5, "Alexandra "); // Ausgabe: "Frau Alexandra Schmidt" Weiterhin ist es Möglich ein Teil eines Strings in ein anderen String einzufügen. string s1("Das Auto ist schnell!"); string s2("Ein sehr schönes Auto."); s1.insert(12, s2, 5, 5); // Ausgabe: "Das Auto ist sehr schnell!" Bei der Methode erase() verhält es sich ähnlich wie bei der Methode insert(), nur das hier etwas gelöscht wird, statt eingefügt. string s1("ein Autoreifen"); s1.erase(4,4); // Ausgabe: "ein reifen" Wird aber nun nicht angegeben, wie lang die zu löschende Teil ist, dann wird ab der zu löschenden Stelle alles gelöscht. string s1("ein Autoreifen"); s1.erase(8); // Ausgabe: "ein Auto" Wenn man kein Argument angibt, werden alle Zeichen im String gelöscht. Die Methode replace() erlaubt dem Programmierer einen Teilstring durch einen anderen String zu er-setzen. Hier ist es gut zu wissen, dass die Stringlängen unterschiedlich groß sein können. Die ersten beiden Argumente der Methode replace()legen die Startposition und die Länge des zu ersetzenden Teilstring fest. Das dritte Argument beschreibt den Ersatz-String und die beiden letzten Argumente beschreiben op-tional ab welcher Stelle mit der Länge x einzufügen ist. string s1("Ab dem Wort String wird ersetzt!"), s2("Ab dem Wort NEU wurde ersetzt!"); s1.replace(12,11,s2,12,9); // Ausgabe: "Ab dem Wort NEU wurde //ersetzt!" Das hab ich alles aus einem Referat eines Klassenkameraden... hab allerdings den ned um Erlaubnis gefragt...:eek: *schluck* hoffe, der nimmt mir das ned krumm;) und dass dir das hilft Uruz Zitieren
Jestertales Geschrieben 5. Februar 2002 Autor Geschrieben 5. Februar 2002 Danke, jetzt hat das Ganze, was ich vorhatte, geklappt :-) Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.