关于#ar#的问题,如何解决?

问题遇到的现象和发生背景

题目是给一个字符串只有0和1组成,然后让各元素相加减,让最后的结果的绝对值最小,输出连接每个元素之间的符号

#include
char s[101];
int main()
{
    int T,n,i,c;
    scanf("%d",&T);
    while(T--)
    {
        scanf("%d%s",&n,s);
        for(c=s[0]=='1',i=1;iputchar(s[i]=='1'?"-+"[c^=1]:'+');
        putchar(10);
    }
}

下边这一串代码都是什么意思?

for(c=s[0]=='1',i=1;i'1'?"-+"[c^=1]:'+');
        putchar(10);

详细解释一下这个putchar(s[i]=='1'?"-+"[c^=1]:'+');

这是三目运算符,自己搜一下