int to String to concat?

时间:2018-02-01 07:24:30

标签: c

#include<stdio.h>
#include<string.h>

int main() {
    int num = 5;
    char hi[15] = "15";
    strcat(hi, num)

}

任何方式都可以轻松完成此操作?例如,我想将num变成一个字符串并连接它,使它变为155。

2 个答案:

答案 0 :(得分:0)

    int num = 5;
    char buff1[15] = "15";
    char buff2[25];

    sprintf(buff2, "%s%d", buff1, num);

请务必检查sprintf()的返回值。当然要确保buff2对于buff1和num。的字符串版本都足够大。

答案 1 :(得分:0)

#include<stdio.h>
#include<malloc.h>
#include<string.h>

int findDigits(int n){

    int count = 0;

    //if it's a single digit
    if( (n/10) == 0){

        return 1;
    }

    while(n /= 10){

        count++;
    }

    return count;
} 

int main() {

    int num = 5;
    char hi[15] = "15";
    char* buf = NULL;

    int digits = findDigits(num);

    if(digits > 0){

        if( (buf = malloc(digits + 1)) == NULL){

            return -1;
        }

        if( (strlen(hi) + digits) >= sizeof(hi) ){

            free(buf);
            return -1;
        }

        sprintf(buf, "%d", num);
        strcat(hi ,buf);

        free(buf);
        printf("%s", hi);

        getchar(); 
    }
    else{

        return -1;
    }

    return 0;
}