zoukankan      html  css  js  c++  java
  • [CodeForces 131A] cAPS lOCK

    题目链接:http://codeforces.com/problemset/problem/131/A

    水题,但容易出错

    对以下几种情况进行处理:
    多于一个字符的情况:
    1.全是大写的情况 改成 全是小写
    2.第一个字母是小写,剩下的全是大写 改成 第一个大写,剩下的全是小写
    一个字符的情况:
    1.小写的变成大写
    2.大写的变成小写
    其他情况原样输出

    AC代码:

    #include <iostream>
    #include <cstring>
    #include <cstdio>
    
    using namespace std;
    
    string str;
    int len;
    
    void result(bool ok) {
        int i = 0;
        if(ok) {
            if(str[0] >= 'a' && str[0] <= 'z') {
                printf("%c",str[0] - 32);
            } else {
                printf("%c",str[0]);
            }
            i=1;
        }
        for(i;i < len;i++) {
            if(str[i] >= 'A' && str[i] <= 'Z') {
                printf("%c",str[i] + 32);
            } else {
                printf("%c",str[i]);
            }
        }
    }
    
    int main() {
        while(cin>>str) {
            len = str.length();
            if(len == 1) {
                if(str[0] >= 'A' && str[0] <= 'Z')
                    printf("%c",str[0] + 32);
                else
                    printf("%c",str[0]-32);
                cout<<endl;
                continue;
            }
            bool flag = false;
            if(str[0] >= 'A' && str[0] <= 'Z') {
                for(int i = 1;i < len;i++) {
                    if(str[0] >= 'A' && str[i] <= 'Z')
                        continue;
                    else {
                        flag = true;
                        break;
                    }
                }
                if(flag)
                    cout<<str;
                else
                    result(false);
            }
            else {
                for(int i = 1;i < len;i++) {
                    if(str[0] >= 'A' && str[i] <= 'Z')
                        continue;
                    else {
                        flag = true;
                        break;
                    }
                }
                if(flag)
                    cout<<str;
                else
                    result(true);
            }
            cout<<endl;
        }
        return 0;
    }
    
  • 相关阅读:
    C语言经典例题
    准确判断网络连接方式和当前连接状态
    [WMI实例]在网络连接断开时通知用户
    SciTE设置
    WQL语言初步
    以管理员身份运行bat
    AHK Primary
    AHK Run as Administrator In AHK
    为.VBS和.JS文件添加右键以管理员运行菜单
    PowerShell 随笔
  • 原文地址:https://www.cnblogs.com/youpeng/p/10952300.html
Copyright © 2011-2022 走看看