将两个整数连接成C中的char *

时间:2016-05-11 23:49:45

标签: c char int concat string-concatenation

现在已经忘记了我的C知识,很难搞清楚如何做到以下几点:

int a = 5; //getting value from a function
int b = 1; //from a function

我想要的是:

char * returnstring = "5:1"; //want to return this

我尝试了以下但是它没有用。

    char astr[5], bstr[5];
    sprintf( astr, "%d", a);
    sprintf( bstr, "%d", b);

    char finstr[100]; //final string
    strcpy(finstr, astr);
    strcpy(finstr, ":");
    strcpy(finstr, bstr);

    printf ("%s", finstr);

2 个答案:

答案 0 :(得分:6)

您只需使用一个sprintf

即可
char str[100];
sprintf(str, "%d:%d", a, b);

答案 1 :(得分:3)

更改

strcpy(finstr,astr);
strcpy(finstr, ":");
strcpy(finstr, bstr);

strcpy(finstr,astr);
strcat(finstr, ":");
strcat(finstr, bstr);

每次连续调用都会覆盖结果字符串。您应该使用strcat连接到字符串的末尾。虽然这可以通过单个sprintf调用轻松完成。