又是一道恶心题。。。PE了N次

前后不能有空格,标点符号前没空格,标点符号可以重复

#include <iostream>
#include 
<string>
using namespace std;

int main()
{
    
char check[30];
    check[
0]='A';check[1]='E';check[2]='I';check[3]='O';check[4]='U';
    
char input[100];
    
int j=5;bool fst=true,cfst;  //fst代表是否是第一个输入字符串,cfst代表输入字符串的第一个字符
    
while (scanf("%s",input)!=EOF)
    
{
        
int len=strlen(input);
        cfst
=true;
        
for (int i=0;i<len;i++)
        
{
            
if (strchr(check,input[i])==0)
            
{
                
if (input[i]!='.'&&input[i]!=','&&input[i]!='?'&&cfst&&fst==false)
                

                    printf(
" %c",input[i]);
                    check[j
++]=input[i];
                    cfst
=false;
                }

                
else if (input[i]!='.'&&input[i]!=','&&input[i]!='?')
                
{
                    printf(
"%c",input[i]);
                    check[j
++]=input[i];
                }

                
else
                
{
                    printf(
"%c",input[i]);
                }

                fst
=false;
                cfst
=false;
            }

        }
 
            
    }

}