1601. AntiCAPS

Time limit: 0.5 second

Memory limit: 64 MB
The blonde Angela has a new whim: internet chats. Of course, as any blonde, shewrites her messages using the upper case. You are the moderator of Angela'sfavorite chat and you're fed up with her upper-case messages. The problemis
that Angela does not respond to your warnings. You decided to write a simpleantiCAPS corrector, which would make Angela's messages readable.
The correction rules are very simple:

  1. Sentences in a message consist of words, spaces and punctuation marks.
  2. Words consist of English letters.
  3. Sentences end with a full stop, exclamation mark, or question mark.
  4. The first word of each sentence must start with a capital letter, and all otherletters 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, exclamationand question marks. Total length of message is not exceeding
10000 symbols.

Output

Output the corrected message.

Sample

input output
HI THERE!
HOW DID YOU KNOW I AM A BLONDE?
Hi there!
How did you know i am a blonde?

Problem Author: Denis Musin

Problem Source: IX USU Open Personal Contest (March 1, 2008)

解析:注意两点:

1.每一个句子以‘.’,‘?’和‘!’结尾。每一个句子开头字符都要换成大写。

2.换行不算句子结尾的标志。

下面提供两组測试例子:

input1:

HELLO. I AM ANJELA! AND YOU?

I AM BLONDE.



output1:

Hello. I am anjela! And you?

I am blonde.

input2:

HHHHHHHHHH? SDSDFSDF! SFSDF. SDFAF

HKLLKSDJOI

output2:

Hhhhhhhhhh? Sdsdfsdf! Sfsdf. Sdfaf

hkllksdjoi

AC代码:

#include <bits/stdc++.h>
using namespace std; int main(){
#ifdef sxk
freopen("in.txt", "r", stdin);
#endif // sxk string s;
int flag = 1;
while(getline(cin, s)){
int n = s.size();
for(int i=0; i<n; i++){
if(flag){
if(s[i] >= 'A' && s[i] <= 'Z') flag = 0;
}
else{
if(s[i] >= 'A' && s[i] <= 'Z') s[i] += ('a' - 'A');
else if(s[i] == '.' || s[i] == '?' || s[i] == '!') flag = 1;
}
}
cout<<s<<endl;
}
return 0;
}

最新文章

  1. springMVC: java.lang.ClassNotFoundException: javax.servlet.jsp.jstl.core.Config
  2. js学习-自定义函数、对象的字面量、json对象学习小结
  3. 【转】怎样提高VR渲染速度
  4. 【BZOJ 2132】 圈地计划
  5. iOS 退出应用程序
  6. linux下curl编程
  7. 基于visual Studio2013解决C语言竞赛题之0403字符统计
  8. Windows Phone开发(17):URI映射
  9. 用TcpClient如何获取远程网页的内容
  10. php实现301跳转
  11. nsx-edge虚拟机抓包实践
  12. 软件工程(FZU2015) 赛季得分榜,第七回合
  13. nGrinder Loadrunner vs nGrinder
  14. 字符串和数组----vector
  15. Oracle 增加、修改、删除字段
  16. 使用动态跟踪技术SystemTap监控MySQL、Oracle性能
  17. 牛客网暑期ACM多校训练营(第七场)J题(Sudoku Subrectangles)题解
  18. 火狐浏览器FireFox 如何将整个网页保存为图片
  19. opencv中读取显示图像
  20. c# 命名空间别名

热门文章

  1. 涨知识III - 百度2016校园招聘——移动软件研发工程师
  2. [转]Linux下paste命令详解
  3. 组合的json文件分隔或者拆分
  4. [转] 64位Oracle 11g R2的客户端连接时报ORA-01019错误
  5. Microsoft SQL Server 2008/2012 Internals 一处疑问
  6. 《Java编程的逻辑》第三部分 泛型与容器
  7. [Android]有关外部链接唤醒App需要注意的坑
  8. [Windows Server 2012] 安装护卫神&#183;主机管理系统
  9. python函数参数的区别
  10. 大白_uva10795_新汉诺塔