Добавить int к char * - PullRequest
       23

Добавить int к char *

20 голосов
/ 07 декабря 2008

Как бы вы добавили целое число к char* в c ++?

Ответы [ 3 ]

24 голосов
/ 07 декабря 2008

Сначала преобразуйте int в char*, используя sprintf():

char integer_string[32];
int integer = 1234;

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

Затем, чтобы добавить его к другому символу *, используйте 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 голосов
/ 07 декабря 2008

Вы также можете использовать строковые потоки.

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

Доступ к строке можно получить с помощью ss.str();

4 голосов
/ 07 декабря 2008

Что-то вроде:

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

Вы можете упростить len, используя максимальную длину для целого числа в вашей системе.

edit упс - не видел "++". Тем не менее, это альтернатива.

...