Description
The blonde Angela has a new whim: internet chats. Of course, as any blonde, she writes her messages using the upper case. You are the moderator of Angela's favorite chat and you're fed up with her upper-case messages. The problem is that Angela does not respond to your warnings. You decided to write a simple antiCAPS corrector, which would make Angela's messages readable.
The correction rules are very simple:
- Sentences in a message consist of words, spaces and punctuation marks.
- Words consist of English letters.
- Sentences end with a full stop, exclamation mark, or question mark.
- The first word of each sentence must start with a capital letter, and all other letters of the sentence must be lowercase.
Input
You are given Angela's message, which consists of uppercase English letters, spaces, line breaks and punctuation marks: full stops, commas, dashes, colons, exclamation and question marks. Total length of message is not exceeding 10000 symbols.
Output
Output the corrected message.
Sample Input
input | output |
---|---|
HI THERE! HOW DID YOU KNOW I AM A BLONDE? | Hi there! How did you know i am a blonde? |
#include<iostream>
#include<string>
#include<cctype>
using namespace std;
int main()
{
string ss,newss;
int count=0;
while(getline(cin,ss))
{
for(int i=0;i<ss.length();i++)
{
if(isupper(ss[i])&&isalpha(ss[i])&&count==0)
{
newss+=ss[i];
count=1;
}
else if(isupper(ss[i])&&isalpha(ss[i])&&count!=0)
{
newss+=tolower(ss[i]);
}
else
{
newss+=ss[i];
}
if(ss[i]=='.'||ss[i]=='!'||ss[i]=='?')
{
count=0;
}
}
cout<<newss<<endl;
newss.clear();
}
return 0;
}
这道题注意一点就好,就是正确的句子是以句号,感叹号,问号结尾。
如果一次输入不是以这三个标点结尾,则这个句子还没有输入完,下次输入的时候,首字母不必大写。