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

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

вопрос задан 7.12.2008
user37875
5809 репутация

3 ответов


  • 23 рейтинг

    Сначала преобразуйте 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"
    
    ответ дан Jeremy Ruten, с репутацией 120379, 7.12.2008
  • 9 рейтинг

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

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

    Строка может быть доступна с помощью ss.str();

    ответ дан Sydius, с репутацией 5819, 7.12.2008
  • 4 рейтинг

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

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

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

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

    ответ дан Draemon, с репутацией 25666, 7.12.2008