string in char[] umwandeln



  • Ich würde gerne wissen wie man einen string in char[] umwandelt , wen das überhaupt geht , den mein Compiler meint das eine solche Typumwandlung nicht möglich ist.



  • Fall es dir nur darum geht den []-Operator anzuwenden kannst du das auch mit einem string tun, falls doch doch einen char* bzw. char[] brauchst kannst du:
    mystring.c_str() benutzen. Das gibt dir einen char* zurück.



  • string str = "Hallo String"; 
    string ins = "ich bin ein "    
    str.insert(8,ins);
    char stri[255];
    stri =  str.c_str(); 
    cout << stri << endl;
    

    Da kommt bei mir immer der Fehler:

    error C2440: '=' : 'const char *' kann nicht in 'char [255]' konvertiert werden
            Es gibt keine Konvertierungen von Feldtypen, obwohl es Konvertierungen von Verweisen oder Zeigern in Felder gibt
    

    Du sagtest doch das würde gehen 😕



  • Wenn du schon C-Strings verwendest, solltest du auch wissen, wie sie zu benutzen sind.

    #include <cstring>
    // ...
    std::strcpy (stri, str.c_str ());
    

    Ist aber reichlich sinnlos, der Ausgabeoperator << ist auch für std::string überladen.



  • Hallo,
    kannst du uns bitte sagen, wofür du diese Umwandlung brauchst. Denn in den meisten Fällen (z.B. bei Übergaben an Funktionen) reicht .c_str() völlig aus.

    MfG


Anmelden zum Antworten