web-dev-qa-db-fra.com

Ajouter un int à char *

Comment ajouteriez-vous un entier à un char* en c ++?

21
user37875

Commencez par convertir l'int en un char* En utilisant sprintf():

char integer_string[32];
int integer = 1234;

sprintf(integer_string, "%d", integer);

Ensuite, pour l'ajouter à votre autre caractère *, utilisez 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"
25
Jeremy Ruten

Vous pouvez également utiliser des chaînes de caractères.

char *theString = "Some string";
int theInt = 5;
stringstream ss;
ss << theString << theInt;

La chaîne est alors accessible en utilisant ss.str();

10
Sydius

Quelque chose comme:

width = floor(log10(num))+1;
result = malloc(strlen(str)+len));
sprintf(result, "%s%*d", str, width, num);

Vous pouvez simplifier len en utilisant la longueur maximale d'un entier sur votre système.

edit oops - n'a pas vu le "++". Pourtant, c'est une alternative.

4
Draemon