=Start=
缘由:
C语言中如何将 整数类型数组 中的数字放入一个字符串中(方便打印),类似于Python中的:
int_array_str = ' '.join(str(e) for e in int_array)
正文:
参考解答:
#include <stdio.h>
/*
C语言中将 整数类型数组 中的数字放在一个字符串中打印出来
    linux c concat int array as string
https://stackoverflow.com/questions/30234363/how-can-i-store-an-int-array-into-string
https://stackoverflow.com/questions/15192221/concatenating-array-of-integers-in-c/15192458#15192458
https://stackoverflow.com/questions/3902640/c-concatenate-int
*/
int main(void)
{
    int a[5]={5, 21, 456, 1, 3};
    char s[128] = {0};
    char s2[128] = {0};
    int i, n = 0;
 
    printf ("\n int a[5] = ");
 
    for (i = 0, n = 0; i < 5; i++) {
        printf("%d ", a[i]);
        n += sprintf (&s[n], "%d", a[i]);
        if(i < 4)
            n += sprintf (&s[n], "%c", '\t');
    }
    printf ("\n\n char* s = %s\n\n", s);
 
    for (i = 0, n = 0; i < 5; i++) {
        n += snprintf (&s2[n], 128-n, "%d", a[i]);
        if(i < 4)
            n += sprintf (&s2[n], "%c", '\t');
    }
    printf ("\n\n char* s2 = %s\n\n", s2);
 
    return 0;
}
主要是利用sprintf/snprintf函数将整数转换成字符串并存入字符数组中,需要根据sprintf/snprintf函数的返回值决定数字在字符数组中的位置。
参考链接:
https://stackoverflow.com/questions/30234363/how-can-i-store-an-int-array-into-string
https://stackoverflow.com/questions/15192221/concatenating-array-of-integers-in-c/15192458#15192458
https://stackoverflow.com/questions/3902640/c-concatenate-int
https://stackoverflow.com/questions/308695/how-do-i-concatenate-const-literal-strings-in-c
=END=
《“Linux下的C语言实现#separator.join(array)”》 有 1 条评论
Linux的C语言中字符串连接可以用strcat/strncat函数实现
https://stackoverflow.com/questions/308695/how-do-i-concatenate-const-literal-strings-in-c
http://man7.org/linux/man-pages/man3/strcat.3.html
`
char str[80] = “\0”;
strcat(str, “these “);
strcat(str, “strings “);
strcat(str, “are “);
strcat(str, “concatenated.”);
`
Linux的C语言中将整数转换成字符串(反过来有atoi/strtol)
https://stackoverflow.com/questions/9655202/how-to-convert-integer-to-string-in-c
https://stackoverflow.com/questions/8257714/how-to-convert-an-int-to-string-in-c
http://man7.org/linux/man-pages/man3/sprintf.3.html
`
sprintf/snprintf
`