如何基于代码基础增加以下功能

int main()
{
    char c1;
    printf("请输入一个字符\n");
    scanf("%c",&c1); 
    if(c1>='a'&&c1<='z')
    printf("%c",c1-32);
    else if(c1>='A'&&c1<='z')
    printf("%c",c1+32);
    else
    printf("%c",c1); 
        
    return 0;    
    
 } 
版权声明:本文为CSDN博主「Albert_9-6」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/qq_46122949/article/details/121863981

请问如何在原文的基础上增加循环输入次数,并且增加以下功能:输入问号时退出。同时统计出现的空格,字符,数字,其他字符的数目,并输出统计结果。

#include <stdio.h>

int main()
{
    char c1;
    int space = 0, chars = 0, nums = 0, others = 0; 
    bool flag = true;
    while (flag == true)
    {
        printf("请输入一个字符:");
        c1 = getchar();
        getchar();
        if (c1 == '?')
            flag = false;
        else
        {
            if ((c1 >= 'a' && c1 <= 'z') or (c1 >= 'A' && c1 <= 'Z'))
            {
                chars++;
            }
            else if (c1 == ' ')
            {
                space++;
            }
            else if (c1 >= '0' && c1 <= '9')
            {
                nums++;
            }
            else
                others++;
        }
    }
    printf("空格:%d,字母:%d,数字:%d,其他字符:%d", space, chars, nums, others);
    return 0;    
 }