Int to Char*



  • Hallo,

    Ich möchte mehrere intger in einer gewissen reinenfolge zusammen in ein char* packen.

    mit String habe ich es bereits hinbekommen, aber ich möchte es gerne mit char* haben.

    Könnt ihr mir bitte ein Beispiel geben wie ich das machen kann?
    Kann ich in diesem Fall auch itoa anwenden? Wenn ja wie?

    #include <iostream>
    #include <sstream>
    #include "stdafx.h"
    
    using namespace std;
    
    int main()
    {
    	int tag = 24;
    	int monat = 3;
    	int jahr= 93;
    
    	//Mit String
    	std::stringstream ss;
    	ss << tag << "." << monat << "." << jahr  << endl;
    
    	string text = ss.str();
    	cout << text << endl;
    
    	//Mit char*
    	char* sdate= new char[11];
    	strcpy(sdate,ss.str()); // diese Zeile ist falsch
    
    	cin.get();
    	return 0;
    }
    


  • //strcpy(sdate,ss.str());
    strcpy(sdate,ss.str().c_str());
    

    ?



  • Super! Danke es funktioniert so wie du geschrieben hast.

    Kann ich in diesem Fall auch itoa anwenden?
    Wie würde das aussehen?



  • string.c_str() gibt einen C-String zurück
    also "jsbdgfsghd\0"

    du kansnt damit jede beliebige funktion füttern die c strings erwartet



  • The architect schrieb:

    Kann ich in diesem Fall auch itoa anwenden?

    Klar. Steht alles in der Doku: http://msdn.microsoft.com/de-de/library/yakksftt(VS.80).aspx



  • The architect schrieb:

    Kann ich in diesem Fall auch itoa anwenden?

    Nein, natürlich nicht.
    c_str() gibt dir einen Puffer in dem du nix modifizieren darfst.



  • hustbaer schrieb:

    The architect schrieb:

    Kann ich in diesem Fall auch itoa anwenden?

    Nein, natürlich nicht.
    c_str() gibt dir einen Puffer in dem du nix modifizieren darfst.

    Upps! Stimmt natürlich... 🤡


Log in to reply