Brauche Hilfe bei meiner eigenen IntToStr() Funktion



  • Da es in Visual C++ 2008 keine direkte Möglichkeit gibt, einen Zahlwert in einen String zu formatieren, sitze ich grade an einer eigenen IntToStr() Funktion und hänge an einer Stelle:

    System::String^ IntToStr(int Integer)
    {
    	char Buff[100];
    	System::String^ Str;
    	sprintf_s(Buff,"%d",sizeof(Buff),Integer);
    	for(int i=1;i<=sizeof(Buff);i++)
    	{
    		if (Buff[i] != 0)
    		{
    			Str+=Buff[i];
    		}
    	}
    	return Str;
    }
    

    An der Stelle "Str+=Buff[i];" tritt zur Laufzeit immer ein Fehler auf und in Str steht nur noch Datenmüll.
    Das lässt sich reproduzieren, wenn ich Str+='X'; mache. Nur Str+="X"; funktioniert. Ich muss also irgendwie meinen einzelnen Char in eine Zeichenkette umwandeln, damit ich sie anfügen kann.

    Kann mir evtl jemand verraten, was zu tun ist?



  • Hab mir erstmal so geholfen, aber das muss doch wohl noch anders gehen?????

    System::String^ IntToStr(int Integer)
    {
    	int i;
    	char Buff[100];
    	System::String^ Str;
    	sprintf_s(Buff,sizeof(Buff),"%d",Integer);
    	for (i=0;i<=sizeof(Buff);i++)
    	{
    		if (Buff[i] != 0)
    		{
    			//Str+=Buff[i];
    
    		if (Buff[i] == '1')
    		{
    			Str+="1";
    		}
    		else if (Buff[i] == '2')
    		{
    			Str+="2";
    		}
    		else if (Buff[i] == '3')
    		{
    			Str+="3";
    		}
    		else if (Buff[i] == '4')
    		{
    			Str+="4";
    		}
    		else if (Buff[i] == '5')
    		{
    			Str+="5";
    		}
    		else if (Buff[i] == '6')
    		{
    			Str+="6";
    		}
    		else if (Buff[i] == '7')
    		{
    			Str+="7";
    		}
    		else if (Buff[i] == '8')
    		{
    			Str+="8";
    		}
    		else if (Buff[i] == '9')
    		{
    			Str+="9";
    		}
    		else if (Buff[i] == '0')
    		{
    			Str+="0";
    		}
    
    		}
    	}
    	return Str;
    }
    

    🤡



  • GR-Thunderstorm schrieb:

    Da es in Visual C++ 2008 keine direkte Möglichkeit gibt, einen Zahlwert in einen String zu formatieren

    Was baust Du hier? Wieso verwendest Du nicht Int32.ToString()?



  • Wie genau wende ich das an?



  • 12.ToString() !?



  • Oder etwas ausführlicher...

    int _zahl1 = 8562;
    int _zahl2 = 6233;
    int _ergebnis = _zahl1 + _zahl2;
    String^ _stringZahl = "12";
    
    this->Text = _ergebnis.ToString();
    
    //Oder 
    MessageBox::Show("Nun einen String zu einem Integer","Convert",MessageBoxButtons::OK,MessageBoxIcon::Information);
    
    _ergebnis += Convert::ToInt32(_stringZahl);
    this->Text = Convert::ToString(_ergebnis);
    

Anmelden zum Antworten