N-FoeMedlem sedan juni 200384 inlägg Hur slår man ihop en sträng och en int till en sträng?
Får inte rätt på det.. har en c++ bok men hittar inget.
I java kan man ju bara skriva:
String str = "Nr " + 1;
kan man inte göra liknande i c++? om inte är det inte inkonsekvent med att man kan skriva:
cout << "Nr " << 1 <<endl;
Tack!
PeWMedlem sedan juni 200010 432 inlägg Det är ju inte så konstigt egentligen, eller så är det konstigt beroende på hur man ser det och vad man jämför med. En sträng består av ett antal tecken. Varje tecken är endast en byte. En 32bitars int är 4 bytes, så det behövs en funktionalitet som inte bara typar om integeren utan även delar upp den i rätt representation genom en itererande algoritm. Detta är implementerat i Java men inte per default i C++. Det finns en gammal c-funktion som heter itoa() och den finns i stdlib.h som gör om en integer till c-sträng och den går ju att använda till detta. En annan variant är att man skriver integeren till en buffert som man sen konkatenerar med sin sträng. Man skulle kunna tänka sig att man borde överlagrat += operatorn med liknande funktionalitet för att kunna göra det så enkelt som du vill ha det, men så är inte fallet. Java är java och c++ är c++ och java kanske upplevs mer konsekvent ur ett perspektiv och c++ mer konsekvent ur ett annat perspektiv.
*Är det bara en siffra mellan 0-9 kan du dock göra det lite lättare genom att lägga till 0x30 och typa till char (egentligen onödigt men en del kompilatorer kanske klagar) som då ska fungera för att använda += operatorn.
r:
typning av konvertering av ett en-teckens int
CoordMedlem sedan okt. 200211 inlägg stringstream är din vän :)
std::stringstream ss;
std::string s;
ss << 1234 << "mu" << 3.14159;
ss >> s;