char String in aus Editfeld einlesen
-
Hi ich hab mich nun ausführlich mit der string.h beschäftigt und versuche nun etwas zu programmieren. Also dachte ich mir ein kleines Programm in dem man z.B. in einen Editfeld ein Wort eingeben kann. Wenn man dann auf den Button Alles Groß klickt werden alle Buchstaben groß, wenn man auf alles klein drückt alle klein, usw.
Nun kommt aber mein Problem. Mit...foo = Edit1->Text.ToDouble();...kann ich z.B. ein Wert ein "double" einlesen. Mit int und den anderen Zahlen-Typen funktioniert das ja auch, aber nicht wenn ich einen String einlesen möchte! Hier mein Lösungsansatz:
char foo[11];//Der String darf max. 10 Zeichen lang sein foo = Edit1->Text.ToChar();Das ganze funktionier aber nicht, denn beim compilieren kommen folgende Fehlermeldungen:
ToChar is not a member of System::AnsiString.
Was muss ich machen damit es funktioniert?
-
Warum hast du dich nicht mit AnsiString (String) beschäftigt?
String foo=Edit1->Text;
-
Danke für die schnelle Antwort, werd ich gleich ausprobieren. Ich hab mich mit der string.h unter C beschäftigt und damit schon was erfolgreich gefrickelt(Übungen). Nun dachte ich mir, dass Wissen sollte ich au8ch versuchen auf BCB zu portieren und bin dann auf das erwähnte Problem gestoßen. Aber nochmal danke.
-
Hallo
wenn du aber wirklich einen C_Style String brauchst, schau dir AnsiString::c_str() und eventuell strncpy() an.
Allerdings solltst du wie Christian schon gesagt hat, wenn möglich immer mit AnsiString arbeiten.bis bald
akari
-
Auch noch mal an dir danke akari!
Also mit strncpy() hab ich mich beschäftigt. Damit kann ich Strings kopieren.(bei der Version ohne n immer den ganzen String).AnsiString::c_str() hab ich mal in der BCB-Hilfe gesucht, aber nicht gefunden. auch c_str() alleine steht nicht drin.

-
Hallo
Es steht in der BCB-Hilfe unter dem Begriff AnsiString, und dort bei den Methoden.
Siehe auch diese Liste.bis bald
akari
-
Danke für deine Hilfe! Ich hasse es immer wenn ich was in der Hilfe nicht finde...

-
DSD-Steve schrieb:
Auch noch mal an dir danke akari!
Also mit strncpy() hab ich mich beschäftigt. Damit kann ich Strings kopieren.(bei der Version ohne n immer den ganzen String).Nur beschränkt richtig. strncpy ist strcpy klar vorzuziehen, da strcpy keine definierte Grenze für den Kopiervorgang kennt (Stichwrot: Bufferoverflow). Auch Strncpy kopiert immer den ganzen String. Nur hört er - ist der String länger als n - nach n zeichen auf. Was den Bufferoverflow verhindert. strcpy brauchts also überhaupt nicht.