大一的想问,C语言如何编程计算字符串中字母得分?

代码正常运行,但结果不对,我不知道咋改啊,能告诉我该咋改吗?犯了哪里的错误呢?

题目描述

给出T个由0和X组成的字符串,统计所有字符的得分和。每个0的得分为目前连续出现的0的个数,X的得分为0。

输入描述:

第一行输入一个整数T,表示共有T组测试样例

接下来行,每行输入一个字符串

输出描述:

每组样例输出一行,代表总得分。
示例
输入
2
ooxxoxxooo
oo
输出
10
3

我的代码:

#include <stdio.h>

int main() {
int t ;
scanf("%d", &t);
char a;
char *b;
int score = 1;
int sum = 0;
int cnt = 0;

for (t = t;  t > 0; t--) {
    a = getchar();
    printf("%s", getchar());
    *b = a;
    b++;

    if (*b = 'O') {
        cnt++;
        score = cnt;
        score *= cnt;
        sum += score;
    } else if (*b = 'X') {
        cnt = 0;
        continue;
    }
    printf("%d", sum);
}

return 0;

}