C++ char[] zu int umwandeln und andersherum

Registriert
Dez. 2009
Beiträge
213
Ich weiß, da gibt es 1000 Einträge bei Google, aber irgendwie klappts bei mir doch nicht so ganz.

Ich habe mir mal das angeschaut:
http://www.informatik-forum.at/showthread.php?33331-int-in-char-umwandeln

Die verwenden da snprintf(...);
Diese Funktion wird bei mir niicht erkannt, obwohl ich stdlib.h eingebunden habe.

Ich wollte mir eigentlich zwei Funktionen schreiben:

void IntToStr(char* pBuffer, int value); //Zum Umwandeln eines Integers in einen String

und

int StrToInt(char* pSource); //Zum Umwandeln eines Strings in einen Integer

Noch zur Klarheit: Ich will nicht irgendwelche ASCI-Positionen, sondern eine richtige Umwandlung, also zb. von 234 (int) zu "234" (char[]).
 
Ah, cool, jetzt klappt das ganze! Für Leute, die noch auf der Suche sind nach zwei kompletten Funktionen:

Code:
void IntToStr(char* pBuffer, int source)
{
	sprintf(pBuffer, "%d", source);
}

int StrToInt(char* pSource)
{
	int result;
	result = strtol(pSource, (char**)0, 10);
	return result;
}
 
badday schrieb:
Alternativ ist dies natürlich mit stringstreams möglich.

Und das ist auch die Methode, die ich empfehlen würde. Sag nein zu all dem Rumgewurschtle mit altmodischen, fehleranfälligen C-String-Funktionen.

Code:
#include <sstream>
#include <string>

template < typename TargetType >
const TargetType fromString( const std::string& sourceString )
{
	TargetType t();
	std::istringstream myStream( sourceString );
	myStream >> t;
	return t;
}

template < typename SourceType >
const std::string toString( const SourceType& val )
{
	std::ostringstream myStream;
	myStream << val;
	return myStream.str();
}


int main()
{
	const std::string testString( "345" );
	const double asDouble = fromString< double > ( testString );
	const int asInt = fromString< int > ( testString );
	
	const int bla = 3342467;
	const std::string asString = toString( bla );
	return 0;
}
 
Zuletzt bearbeitet:

Ähnliche Themen

Zurück
Oben