Timus 1601. AntiCAPS

來源:互聯網
上載者:User
Timus 1601. AntiCAPS 要求把一段大寫英文字母的文本轉換為適當的小寫英文字母。
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, 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:

  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 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 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)

答案如下(C#語言):

 1 using System;
 2 
 3 namespace Skyiv.Ben.Timus
 4 {
 5   sealed class T1601
 6   {
 7     static void Main()
 8     {
 9       int v;
10       bool isCap = true;
11       while ((v = Console.In.Read()) != -1)
12       {
13         char c = (char)v;
14         if (c == '.' || c == '!' || c == '?') isCap = true;
15         else if (isCap && char.IsUpper(c)) isCap = false;
16         else if (!isCap && char.IsUpper(c)) c = char.ToLower(c);
17         Console.Write(c);
18       }
19     }
20   }
21 }

下面是C語言的版本:

 1 #include <stdio.h>
 2 
 3 int main()
 4 {
 5   int c, isCap = 1;
 6   while ((c = getchar()) != EOF)
 7   {
 8     if (c == '.' || c == '!' || c == '?') isCap = 1;
 9     else if (isCap && isupper(c)) isCap = 0;
10     else if (!isCap && isupper(c)) c = tolower(c);
11     putchar(c);
12   }
13 }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.