• codechef T1 What's int the name


    NITIKA: 姓名本无意
    题目描述 Nitika 读了一本历史书,想要理清其中的人物关系。因此她要她的哥哥把书中出现的历史人 物全部列出来。哥哥把列好的人名给了 Nitika,但 Nitika 非常不满意,因为哥哥列出的这些人名 格式非常不规范。处于强迫症,Nitika 决定自己来整理这些人名。 一个名字最多有三个部分:姓、名,和中间名,按照名、中间名、姓的顺序排列;最少也有姓 这一个部分。Nitika 决定把人名写成下面的格式: • 只有每个部分的首字母是大写; • 除了姓之外,每个部分用其大写首字母加一个‘.’表示。 比如,按这个规则对一些名字进行改写: • gandhi −→ Gandhi • mahatma gandhI −→ M. Gandhi • Mohndas KaramChand gandhi −→ M. K. Gandhi 输入格式
    输入的第一行包含一个整数 T,代表测试数据的组数。接下来是 T 组数据。 每组数据仅有一行,包含一个人名。名字的不同部分之间用空格隔开。
    输出格式
    对于每组数据,输出一行,包含改写后的人名。
    数据范围和子任务 • 1 ≤ T ≤ 100 • 2 ≤名字每个部分的长度≤ 10 子任务 1(40 分): • 所有姓名仅有一个部分
    子任务 2(60 分): • 无附加限制
    样例数据
    输入

    3

    gandhi

    mahatma gandhI

    Mohndas KaramChand gandhi

    输出

    Gandhi

    M. Gandhi

    M. K. Gandhi

    归结起来这就是道简单的字符串题目 代码不过才四十行

    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int T,cnt1,cnt2,cnt3;
    char s1[55],s2[55],s3[55];
    bool pd(char c){return (c>='a'&&c<='z')||(c>='A'&&c<='Z');}
    int read(char s[],int& cnt){
        char c=getchar();
        while(!pd(c)) c=getchar();
        while(pd(c)) s[cnt++]=c,c=getchar();
        if(c=='
    ') return 0;
        return 1;
    }
    char pd1(char c){
        if(c>='a'&&c<='z') return c-'a'+'A';
        return c;
    }
    char pd2(char c){
        if(c>='A'&&c<='Z') return c-'A'+'a';
        return c;
    }
    void pf(char s[],int len){
        printf("%c",pd1(s[0]));
        for(int i=1;i<len;i++) printf("%c",pd2(s[i]));
        printf("
    ");
    }
    int main()
    {
        scanf("%d",&T);
        while(T--){
            cnt1=0; cnt2=0; cnt3=0;
            int f=read(s1,cnt1);
            if(!f) {pf(s1,cnt1); continue;}
            else printf("%c. ",pd1(s1[0]));
            f=read(s2,cnt2);
            if(!f) {pf(s2,cnt2); continue;}
            else printf("%c. ",pd1(s2[0]));
            read(s3,cnt3); pf(s3,cnt3);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    DevC++实现调试功能
    DevC++实现调试功能
    《算法竞赛入门经典》计算组合数问题
    C#根据控件名获取控件对象
    C#根据控件名获取控件对象
    C# 使用反射获取私有属性的方法
    C# 使用反射获取私有属性的方法
    JSON转Object的方式
    JSON转Object的方式
    Hadoop: Setting up a Single Node Cluster.
  • 原文地址:https://www.cnblogs.com/lyzuikeai/p/7150178.html
Copyright © 2020-2023  润新知