Append an int to char*

前端 未结 3 1645
旧巷少年郎
旧巷少年郎 2020-12-24 02:18

How would you append an integer to a char* in c++?

相关标签:
3条回答
  • 2020-12-24 02:49

    Something like:

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

    You could simplify len by using the maximum length for an integer on your system.

    edit oops - didn't see the "++". Still, it's an alternative.

    0 讨论(0)
  • 2020-12-24 03:05

    First convert the int to a char* using sprintf():

    char integer_string[32];
    int integer = 1234;
    
    sprintf(integer_string, "%d", integer);
    

    Then to append it to your other char*, use 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"
    
    0 讨论(0)
  • 2020-12-24 03:07

    You could also use stringstreams.

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

    The string can then be accessed using ss.str();

    0 讨论(0)
提交回复
热议问题