c-如何将多个整数组合成一个字符串,并在其中添加符号



我有多个int变量,每个int大约是4到6位数字。

我想把它们组合成一个大字符串(char*),并在每个整数之间添加符号">"

类似于:

int  a = 123456, b = 2244, c = 23456, d = 54321;
char * str;

输出字符串如下所示:123456>2244>23456>54321

试试这个

char string[100];
snprintf(string, sizeof(string), "%d>%d>%d>%d", a, b, c, d);

如果你指的是一个可变长度的数组,你可以这样做

#include <stdio.h>
#include <string.h>
int main()
{
    int  array[5] = {1, 2, 3, 4, 5};
    char string[1024];
    int  size;
    size  = sizeof(string);
    size -= snprintf(string, sizeof(string), "%d", array[0]);
    for (size_t i = 1 ; ((i < sizeof(array) / sizeof(array[0])) && (size > 0)) ; ++i)
    {
        char current[100];
        snprintf(current, sizeof(current), ">%d", array[i]);
        size -= strlen(current);
        if (size >= 0)
            strcat(string, current);
    }   
    printf("%sn", string);
    return 0;
}

怎么样:

char buf[n*7+1]; /* big enough for 6 digits per, plus >. See my comment below. */
char * cur = buf; /* points to start of buf. */
int i;
for(i=0; i<n; ++i) {
  /* sprintf returns the number of characters converted, so
     this advances the pointer to the end of the added chars. */
  cur += sprintf(cur, "%d>", array[i]);
}
*(cur - 1) = ''; /* get rid of the last > */

我还没有编译这个,所以你可能需要做一些修改。

最新更新