模拟 字符串必须先清零,要不会出现玄学的问题
#include<iostream>
#include<cstdio>
using namespace std;
string s,S;
int main()
{
s="";S="";
getline(cin,S,'\n');
bool flag=false;
for(int i=;i<S.length();i++)
{
// cout<<S[i];
if(S[i]!=' ') flag=false;
if(S[i]==' '&&!flag&&(S[i-]!='.'&&S[i-]!=','&&S[i-]!=' '))
{
for(int j=i+;j<S.length();j++)
{
if(S[j]!=' '&&S[j]>=''&&s[j]<='')
{
flag=true;
break;
}
else if(S[j]!=' '&&(S[j]=='.'||S[j]==','))
{
flag=false;
break;
}
}
if(flag) s+=' ';
}
if(S[i]!=' ') s+=S[i];
}
// cout<<s<<endl;
int f=;
for(int i=;i<s.length();i++)
{
if(f==||s[i]!='.')
{
f=;
}
if(f==&&s[i]=='.'&&s[i-]!=','&&i!=)
{
f++;
cout<<" ";
} else
if(s[i]=='.') f++;
cout<<s[i];
if(s[i]==','&&i!=s.length()-)
{
cout<<" ";
}
}
return ;
}