我有四个字符串数组。我想用这种格式打印出字符串:
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.
打印时如何忽略空值?我不知道该怎么做。
答案 0 :(得分:0)
您可能希望使用三元运算符:
.../images_stored/
对其他三个字符串也一样。
或者在开头定义一个宏:
strings_quadruples1_action[0]!=NULL?strings_quadruples1_action[0]:""
并执行printf:
#define NO_NULL(X) X!=NULL?X:""