编译原理~高手请帮忙printf()里怎么加逗号???

printf("Vt={");

for(i=0;i<50;i++)
for(j=i+1;j<50;j++)
if(z[i]==z[j]) z[j]=0;

for(i=0;i<50;i++)
if(z[i]!='-'&&z[i]!='>'&&z[i]!='|'&&z[i]!=0&&z[i]!='~')
printf("%c",z[i]);
printf("}");

这里输出是Vt={ab}可是正确要的是Vt={a,b}得该哪里呀???请高手帮忙

int flag=0;

for(i=0;i<50;i++)
if(z[i]!='-'&&z[i]!='>'&&z[i]!='|'&&z[i]!=0&&z[i]!='~')
{
if(flag>0)
printf(",");
printf("%c",z[i]);
flag++;
}
flag主要是用于判断第一个字符不需要在前面加逗号,以后就每个输出字符前面加一个逗号
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-03-31
for(i=0;i<50;i++)
{
if(z[i]!='-'&&z[i]!='>'&&z[i]!='|'&&z[i]!=0&&z[i]!='~')
{
printf("%c",z[i]);
if(i<49) printf(",");
}
}
printf("}");
第2个回答  2012-03-31
printf("%c",z[i]);
在%c后面加个,号。。。。追问

那样的话输出是Vt={a,b,}...是要Vt={a,b}的

追答

额,那输出方式要改了。把结果放到一个数组,再输出这个数组可以做到。 就你的这三个
printf("Vt={");
printf("%c",z[i]);
printf("}");
还没想到。想想。