PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [C++] int to string



idefix
05-09-2005, 20:19
Hi,

ich habe hier eine Zeichenkette wie:

string sqlCommand="update bla set bar=foo where id=";
int id=10
Nun möchte ich diesen Integer an die Zeichenkette anhängen, aber ich bekomme es einfach nicht hin.
Wie kann ich diesen int in einen string konvertieren?

Kann mir hier bitte einer helfen?

nobody0
05-09-2005, 20:27
snprintf + strncat

idefix
05-09-2005, 20:56
Hab jetzt eine Möglichkeit gefunden:


int id=10;
stringstream sstr;
sstr << id;
string a=sstr.str();

idefix
05-09-2005, 20:59
Jetzt habe ich das nächste Problem, ich muss möchte mir einen Operator schreiben, der genau das macht, was ich weiter oben geschrieben habe.

Im Code würde ich gerne das folgende schreiben:


int id=10;
string sql="update tabel foo=bar where id=" + id;

Leider kenne ich mich mit Operatoren überhaupt nicht aus, kann mir einer hier bitte weiterhelfen?

anda_skoa
05-09-2005, 21:00
Oder mittels stringstream


#include <iostream>
#include <sstream>
#include <string>

int main()
{
std::string s = "some text";
int number = 10;

std::stringstream stream;
stream << s << number;
s = stream.str();

std::cout << s << std::endl;

return 0;
}


Ciao,
_

anda_skoa
05-09-2005, 21:05
Ups, da war ich zu langsam



#include <iostream>
#include <sstream>
#include <string>

inline std::string& operator+=(std::string& s, int i)
{
std::stringstream stream;
stream << s << i;
s = stream.str();

return s;
}

inline std::string operator+(const std::string& s, int i)
{
std::stringstream stream;
stream << s << i;
return stream.str();
}


int main()
{
std::string s = "some text";
int number = 10;

std::stringstream stream;
stream << s << number;
s = stream.str();

std::cout << s << std::endl;

s += 5;

std::cout << s << std::endl;

std::cout << s + 9 << std::endl;

return 0;
}


Ciao,
_

idefix
05-09-2005, 21:15
ah super, einfach nur genial.
Super danke dir vielmals!!!!!!

Ich bin einfach sprachlos. :D