2008-12-07 9 views

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" 
+3

Dies funktioniert auch in C. – Sydius

+0

Sie haben eine Pufferüberlauf-Schwachstelle auf Ihren Händen, wenn sizeof (int)> 4. – Tom

+0

Ja, das ist wirklich unsicher. Zumindest benutze strncat ... –

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.