将英语句子中的单词首字母变成大写,但是出现了”Output Limit Exceed“,请问哪里又出错?

Description
输入一个英文句子,将每个单词的第一个字母改成大写字母。
Input
输入数据包含多个测试实例,每个测试实例是一个长度不超过100的英文句子,占一行。
Output
请输出按照要求改写后的英文句子。
Sample Input

i like acm
i want to get an accepted

Sample Output

I Like Acm
I Want To Get An Accepted


#include<stdio.h>
#include<string.h>
int main()
{
    char c[101] = {'\0'};
    while (gets(c)!=EOF)
    {
        for (int i = 0;i<strlen(c); i++)
        {
            if (i==0)
            {
                c[i] -= 32;
            }
            if (c[i]==' ')
            {
                c[i + 1] -= 32;
            }
        }
        puts(c); 
    }
    return 0;
}

这句 while (gets(c)!=EOF) 判断不对,改为:while (gets(c)!= NULL)

那个c[i]==' ',不就是碰到空格后,空格后的单词首字母ascii码值减去32,不就是你标题的Output Limit Exceed原因嘛,是这个意思吗🥺