zoukankan      html  css  js  c++  java
  • HDU 1736 美观化文字

    美观化文字

    Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 4009    Accepted Submission(s): 881


    Problem Description
    请看下面两段文字:

    Kenny喊道:"我来了!"

    Kenny喊道:“我来了!”

    前面一段文字中由于在中文中使用了英文标点,显得不太美观。本题中你的任务是让任意一段文字美观化。美观化具体要求为将以下字符(串)转换为对应的中文字符:


    英文 中文
    , ,
    . 。
    ! !
    " “或”
    << 《
    >> 》
    ? ?
     
    Input
    输入文字只有一段。文字中可能含有中英文、符号以及控制符(换行、空格、制表符等)。
     
    Output
    按照要求输出美化后的文字段。你不用翻译以上指定的符号之外的所有字符
     
    Sample Input
    Kenny喊道:"我来了!"
     
    Sample Output
    Kenny喊道:“我来了!”
    Hint
    你可以认为所有中文字符由两个字节组成,首字节的ASCII值都大于127(也可以理解为signed char型小于0)
     
    Author
    JGShining(极光炫影)
     
    Source
     
     
     
    解析:细节题。输入文字是一段,而不是一行。并且文字本身可能含有中文引号,注意判断方式,因为中文的引号有前后之分。
     
     
     
     1 #include <cstdio>
     2 #include <string>
     3 using namespace std;
     4 
     5 char s[201000];
     6 
     7 int main()
     8 {
     9     while(gets(s)){
    10         int sum = 0;
    11         for(int i = 0; s[i] != ''; ++i){
    12             string tmp("");
    13             tmp = tmp+s[i]+s[i+1];   //构造成字符串,判断中文引号,写成tmp += s[i]+s[i+1]会得到WA。
    14             if(tmp == "" || tmp == "")
    15                 ++sum;
    16             if(s[i] == '"'){
    17                 if(sum%2 == 0)
    18                     printf("");
    19                 else
    20                     printf("");
    21                 ++sum;
    22             }
    23             else if(s[i] == ',') printf("");
    24             else if(s[i] == '.') printf("");
    25             else if(s[i] == '!') printf("");
    26             else if(s[i] == '?') printf("");
    27             else if(s[i] == '<' && s[i+1] == '<'){
    28                 ++i;
    29                 printf("");
    30             }
    31             else if(s[i] == '>' && s[i+1] == '>'){
    32                 ++i;
    33                 printf("");
    34             }
    35             else
    36                 printf("%c", s[i]);
    37         }
    38         printf("
    ");   //补上gets后的'
    '
    39     }
    40     return 0;
    41 }
  • 相关阅读:
    使用Junit4进行单元测试
    SourceMonitor的安装及使用
    PMD的安装及使用
    CheckStyle的安装及使用
    FindBugs的安装及使用
    【论文学习】A Study of Equivalent and Stubborn Mutation Operators using Human Analysis of Equivalence
    GitHub
    作业3
    作业2续
    作业2
  • 原文地址:https://www.cnblogs.com/inmoonlight/p/5512878.html
Copyright © 2011-2022 走看看