打印字符串数组并忽略空值

时间:2016-04-23 03:04:53

标签: c

我有四个字符串数组。我想用这种格式打印出字符串:

                        printf(" %d \t %s \t %s \t %s \t %s.\n",
                        quadruples_line_counter,
                        strings_quadruples1_action[0],
                        strings_quadruples2_variable1[0],
                        strings_quadruples3_variable2[0],
                        strings_quadruples4_temp_variable[0]);

它给出了这个输出:

17      func    sub     int     3.
 17      param   (null)          (null)          (null).
 17      alloc           4       (null)          xa.
 17      alloc           4       (null)          y.
 17      alloc           4       (null)          z.
 17      multiply        55      y       t0.
 17      divide          t0      z       t1.
 17      plus            xa      t1      t2.
 17      plus            t2      x       t3.
 17      func    main    void    0.
 17      alloc           4       (null)          a.
 17      alloc           4       (null)          b.
 17      alloc           4       (null)          c.
 17      arg             (null)          (null)          x.
 17      arg             (null)          (null)          y.
 17      arg             (null)          (null)          z.
 17      call            sub     3       t5.
 17      assign          t5      (null)          y.

打印时如何忽略空值?我不知道该怎么做。

1 个答案:

答案 0 :(得分:0)

您可能希望使用三元运算符:

.../images_stored/

对其他三个字符串也一样。

或者在开头定义一个宏:

strings_quadruples1_action[0]!=NULL?strings_quadruples1_action[0]:""

并执行printf:

#define NO_NULL(X) X!=NULL?X:""