zoukankan      html  css  js  c++  java
  • ytu 1304:串的简单处理(水题)

    串的简单处理

    Time Limit: 1 Sec  Memory Limit: 128 MB
    Submit: 39  Solved: 11
    [Submit][Status][Web Board]

    Description

    串的处理
    在实际的开发工作中,对字符串的处理是最常见的编程任务。本题目即是要求程序对用户输入的串进行处理。具体规则如下:
    1.    把每个单词的首字母变为大写。
    2.    把数字与字母之间用下划线字符(_)分开,使得更清晰
    3.    把单词中间有多个空格的调整为1个空格。

    Input

    例如:
    用户输入:
    you and     me what  cpp2005program

    Output

    则程序输出:
    You And Me What Cpp_2005_program

    Sample Input

    this is a 99cat

    Sample Output

    This Is A 99_cat

    HINT

      第一次提交这道水题竟然WA,看了一下问题出在将所有单词首字母变为大写那部分,原因是那部分代码我直接copy的前面做过的一道题,而两道题的情况又不一样,所以一般不要copy,因为你也不知道copy的代码放到当前情况到底适不适应。

     1 /*
     2 1.    把每个单词的首字母变为大写。
     3 2.    把数字与字母之间用下划线字符(_)分开,使得更清晰
     4 3.    把单词中间有多个空格的调整为1个空格。
     5 */
     6 #include <iostream>
     7 
     8 using namespace std;
     9 
    10 int main()
    11 {
    12     char s[101];
    13     while(cin.getline(s,100,'
    ')){
    14         //1.    把每个单词的首字母变为大写。
    15         int i;
    16         for(i=0;s[i]!='';i++){
    17             if(s[i]!=' ')
    18                 if(('a'<=s[i] && s[i]<='z')){
    19                     s[i]-=32;
    20                     break;
    21                 }
    22                 else break;
    23         }
    24         for(i=i+1;s[i]!='';i++){
    25             if(s[i]==' '){
    26                 if( ('a'<=s[i+1] && s[i+1]<='z') && s[i+1]!=''){
    27                     s[i+1]-=32;
    28                 }
    29             }
    30         }
    31         //2.    把数字与字母之间用下划线字符(_)分开,使得更清晰
    32         //3.    把单词中间有多个空格的调整为1个空格。
    33         for(i=0;s[i]!='';i++){
    34             if( '0'<=s[i] && s[i]<='9' ){
    35                 if( ('a'<=s[i+1] && s[i+1]<='z') || ('A'<=s[i+1] && s[i+1]<='Z') )
    36                     cout<<s[i]<<'_';
    37                 else
    38                     cout<<s[i];
    39             }
    40             else if( ('a'<=s[i] && s[i]<='z') || ('A'<=s[i] && s[i]<='Z') ){
    41                 if(  '0'<=s[i+1] && s[i+1]<='9'  )
    42                     cout<<s[i]<<'_';
    43                 else
    44                     cout<<s[i];
    45             }
    46             else if(s[i]==' ' && s[i+1]==' ')
    47                 continue;
    48             else
    49                 cout<<s[i];
    50         }
    51         cout<<endl;
    52     }
    53     return 0;
    54 }

    Freecode : www.cnblogs.com/yym2013

  • 相关阅读:
    聚合物钽电容和普通钽电容的区别
    Java命令:Jstack
    计算并发用户数的五种方法
    LoadRunner脚本优化-加密与解密
    如何定位性能瓶颈
    loadrunner配置多台负载机设置
    nmon监控及简要分析
    Web系统大规模并发——电商秒杀与抢购
    大型网站的灵魂——性能
    mycat实战之性能测试
  • 原文地址:https://www.cnblogs.com/yym2013/p/3460342.html
Copyright © 2011-2022 走看看