String in Char[] umwandeln?



  • Hallo!

    Ich habe ein Frage. Wie geht das: Und zwar, dass ich etwas in die textBox eingebe und sie mit einen char[20] umwandeln und auf einem Zeiger lege?
    Danke für Antworten



  • wenn mich ned alle täuscht, dann so:

    System::String ^ str = "bla bla bla";
    char * foo = reinterpret_cast<char *>(System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str).ToPointer());
    
    ...
    
    System::Runtime::InteropServices::Marshal::FreeHGlobal(System::IntPtr(foo));
    




  • Danke für die schnelle antwort doch ich habe ein weiteres Poblem und zwar ich habe eine Aufgabe bekommen und das ist meine erste Forms anwendung. Ich muss von einer textBox1 den String in einen char[20] umwandeln, die Buchtaben alle umwandeln in sowas zum bispiel: TextBox1: Wort Button Umwandeln TextBox2: trow und trow muss dann auf textBox2. Ich verstehe so gut wie alles außer die Konvertierung von String in Char[] und zurück danach 😞 bin am Ende meines Lateins...



  • Und warum brauchst Du das "char[20]" dazu?
    Warum machst Du es nicht so:

    String ^str = String::Empty;
    for each(Char c in this->textBox1->Text)
      str = c + str;
    this->textBox2->Text = str;
    

    PS: WIr sind hier aber kein "Hausaufgaben-Lösungs-Forum"...



  • PS: WIr sind hier aber kein "Hausaufgaben-Lösungs-Forum"...

    Es ist auch keine Hausaufgabe sondern von einen Freund. Bei einer Hausaufgabe hätt ich mein Lehrer gefragt ;). Ich dachte aus dem "normalen" C++ das man den Char Array dann einfach umdreht... Danke für die Hilfe könntest du mir es nur noch ein wenig erklären weil will ja nicht nur Kopieren und dann erneuert fragen...



  • // Initialisiert den "Resultat"-String mit ""
    String ^str = String::Empty; 
    // Gehe jedes Zeichen (oder besser gesagt "CodePoint") aus der textBox1 durch
    for each(Char c in this->textBox1->Text) 
    // und füge ihn *vorne* an den Result-String an
      str = c + str; 
    // Weise den Result-String nun der zweiten textBox zu
    this->textBox2->Text = str;
    

    Somit kann man auch feststellen: Die Lösung ist nicht 100% richtig, da ich hier keine Combining-Characters berücksichtigt habe!
    Siehe auch meinen Artikel zu "Unicode":
    http://www.c-plusplus.net/forum/viewtopic-var-t-is-161855.html


Anmelden zum Antworten