题目描述: 将一个字符串,去掉前面和后面的空格,所有单词第一个字母大写,剩下的字母小写,自测对了但只得了5分
#include <bits/stdc++.h>
using namespace std;
int main(){
string s,S,t;
getline(cin, s);
int l = s.size(),flag=0;
for(int i=0;i<l;i++){
if(flag==0) if(s[i]!=' ') flag++;
if(flag==1) S+=s[i];
}
s=S;
S="";
l=s.size();
flag=0;
for(int i=l-1;i>=0;i--){
if(flag==0) if(s[i]!=' ') flag++;
if(flag==1) S=s[i]+S;
}
s=S+" ";
S="";
int L=s.size();
for(int i=0;i<L;i++){
if(s[i]==' '){
S=S+t+" ";
t="";
} else {
if(t==""){
if(s[i]>='a'&&s[i]<='z') s[i]-=32;
}else{
if(s[i]>='A'&&s[i]<='Z') s[i]+=32;
}
t+=s[i];
}
}
l=S.size();
for(int i=0;i<l-1;i++)cout<<S[i];
return 0;
}