Wie würden Sie an eine char*
in C++ eine Ganzzahl anhängen?Ein int an char anhängen *
19
A
Antwort
22
Zuerst wandeln die int zu einem char*
sprintf()
mit:
char integer_string[32];
int integer = 1234;
sprintf(integer_string, "%d", integer);
Dann ist es zu Ihren anderen char * anhängen, verwenden strcat()
:
char other_string[64] = "Integer: "; // make sure you allocate enough space to append the other string
strcat(other_string, integer_string); // other_string now contains "Integer: 1234"
9
Sie auch stringstreams nutzen könnten.
char *theString = "Some string";
int theInt = 5;
stringstream ss;
ss << theString << theInt;
Die Zeichenfolge kann dann ss.str();
mit zugegriffen werden
4
So etwas wie:
width = floor(log10(num))+1;
result = malloc(strlen(str)+len));
sprintf(result, "%s%*d", str, width, num);
Sie kann mit der maximalen Länge für eine ganze Zahl auf Ihrem System len vereinfachen.
bearbeiten oops - habe nicht die "++" zu sehen. Trotzdem ist es eine Alternative.
Dies funktioniert auch in C. – Sydius
Sie haben eine Pufferüberlauf-Schwachstelle auf Ihren Händen, wenn sizeof (int)> 4. – Tom
Ja, das ist wirklich unsicher. Zumindest benutze strncat ... –