其他分享
首页 > 其他分享> > HDU - 2564 词组缩写

HDU - 2564 词组缩写

作者:互联网

HDU - 2564 词组缩写

原题链接

Problem Description:

定义:一个词组中每个单词的首字母的大写组合称为该词组的缩写。
比如,C语言里常用的EOF就是end of file的缩写。

Input:

输入的第一行是一个整数T,表示一共有T组测试数据;
接下来有T行,每组测试数据占一行,每行有一个词组,每个词组由一个或多个单词组成;每组的单词个数不超过10个,每个单词有一个或多个大写或小写字母组成;
单词长度不超过10,由一个或多个空格分隔这些单词。

Output:

请为每组测试数据输出规定的缩写,每组输出占一行。

Sample Input:

1

end of file

Sample Output:

EOF

思路: 坑比较多 第一个字母可能是大写也可能是小写,中间可能有多个空格,每个词的第一个字母可能是大写也可能是小写!!

话不多说代码附上:

#include <iostream>
#include<cstring>
#include<cstdio>
using namespace std;
char str[100000];

int main()
{

    int ti;
    cin>>ti;
    getchar();//小坑
    while(ti--)
    {
        gets(str);
        int c=strlen(str);
        if(str[0]>='a'&&str[0]<='z')//判断第一个字母
            printf("%c",str[0]-32);//小写换大写
        else if(str[0]>='A'&&str[0]<='Z')
            printf("%c",str[0]);

        for(int a=1; a<c; a++)
        {
            if(str[a]==' '&&str[a+1]!=' ')//防止有多个空格
                if(str[a+1]>='a'&&str[a+1]<='z')
                    printf("%c",str[a+1]-32);//小写换大写
                else if(str[a+1]>='A'&&str[a+1]<='Z')
                    printf("%c",str[a+1]);/如果是大写 就原样输出~~
        }

        printf("\n");
    }

}

欢迎各位网友指点~~~

标签:缩写,词组,HDU,str,2564,大写,单词,&&
来源: https://blog.csdn.net/weixin_53523248/article/details/115421369