string nach char*



  • Hallo,

    ich suche eine Möglichkeit einen string in einen char* zu konvertieren.

    So habe ich es versucht:

    #include <stdio.h>
    #include <string>
    using namespace std;
    
    void main(void)
    {
      string test1 ="Blah";
      char *test2;
      strcpy(test1,test2);
    }
    

    klappte aber nicht! 🙂

    Könnt ihr mir helfen?

    Gruß Patrick



  • geht auch const char*? wenn ja dann nimm die memberfunktion c_str()



  • mmh, sollte auch funktionieren. Wollte gerade noch meine Beitrag ein wenig
    editieren, aber das hast du schon so schnell geantwortet! 🙂

    Hab es gerade nochmal so versucht:

    string strText;
    char *ch = new char[strText.length()+1]; 
    strcpy(ch, strText.c_str()); 
    ... 
    delete [] ch;
    

    hat aber auch nicht funktioniert. Wie würdest du das denn mit dem c_str() machen?



  • hat aber auch nicht funktioniert.

    Das ist keine vernünftige Fehlerbeschreibung.



  • funktioniert hier wunderbar:

    #include <iostream>
    using namespace std;
    
    int main() 
    {
    	string strText = "Teststring"; 
    	char *ch = new char[strText.length()+1]; 
    	strcpy(ch, strText.c_str()); 
    	cout << ch << endl;
    	delete [] ch;
    
    	return 0;
    }
    

    ...hat aber mit MFC nicht viel am Hut.



  • jo, tut mir leid.

    ich bekomme beim oberen Beispiel bekommen ich folgendes:

    error C2664: 'strcpy' : Konvertierung des Parameters 1 von
     'class std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >' in 'char
    

    Ich habe das untere Beispiel gerade zu :

    #include <stdio.h>
    #include <string>
    using namespace std;
    
    void main(void)
    {
    string strText = "test";
    char *ch = new char[strText.length()+1]; 
    strcpy(ch, strText.c_str()); 
    printf("%s",ch);
    delete [] ch; 
    }
    

    geändert, und es funktioniert! 🙂


Anmelden zum Antworten