Zum Inhalt springen

Umgang mit String-Variablen


Jestertales

Empfohlene Beiträge

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!

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

:D

Uruz

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...