输出数组为c中用逗号分隔的“字符串”

时间:2018-10-15 05:10:01

标签: c arrays output

我有以下数组:

LEFT

并且要输出“打开的储物柜:0、1、2、3、4。”

特别地,它必须以最后一个数字之后的句号结尾。我不确定如何在for循环中执行此操作,而不必多次打印“ Opened Lockers:”部分。

5 个答案:

答案 0 :(得分:1)

create stream sample_transition with(topic_name='transition',value_format='avro');

答案 1 :(得分:1)

获得所需格式的超级简单方法是在输出循环中将条件(三元)运算符用作printf格式字符串的一部分,例如

#include <stdio.h>

int main (void) {

    int openedLockers[] = {0,1,2,3,4},
        n = sizeof openedLockers / sizeof *openedLockers;

    fputs ("Opened Lockers: ", stdout);

    for (int i = 0; i < n; i++)
        printf (i ? ",%d" : "%d", openedLockers[i]);
    puts (".");

    return 0;
}

使用/输出示例

$ ./bin/openlockers
Opened Lockers: 0,1,2,3,4.

仔细检查一下,如果还有其他问题,请告诉我。

答案 2 :(得分:1)

要做到没有分支:

#include <stddef.h>
#include <stdio.h>

int main (void)
{
    int openedLockers[] = {0, 1, 2, 3, 4};
    size_t const n = sizeof openedLockers / sizeof *openedLockers;

    printf("Opened Lockers: ");

    for (size_t i = 0; i < n; ++i)
        printf("%d,", openedLockers[i]);

    puts("\b."); // overwrite the last comma with a period and add a newline.
}

答案 3 :(得分:0)

#include <stddef.h>
#include <stdio.h>

int main (void)
{
    int openedLockers[] = {0, 1, 2, 3, 4};
    int const n = sizeof openedLockers / sizeof *openedLockers;

    printf("Opened Lockers: ");

    for (int i = 0; i < n; ++i)
        printf("%d,", openedLockers[i]);

    printf("\b.");
}

答案 4 :(得分:0)

仅循环重复部分,以避免Load Test Data ${title}= get title Set Test Variable ${data} ${title} Log ${data} 或其他条件构造。请注意,重复部分的重复时间比元素数少一遍。

if