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!
Klotzkopp Geschrieben 4. Februar 2002 Geschrieben 4. Februar 2002 Vielleicht hilft das: http://www.bcbdev.com/faqs/faq40.htm
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
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?
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
Jestertales Geschrieben 5. Februar 2002 Autor Geschrieben 5. Februar 2002 Danke, jetzt hat das Ganze, was ich vorhatte, geklappt :-)
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden