2564:词组缩写

来源:互联网 发布:西游破坏神进阶数据 编辑:程序博客网 时间:2024/06/11 21:51

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2564

方法:字符串解析

思路:整整被坑了一个小时,我无语了。首先,注意要求,单词内大小写是都有的,不是只有小写!另外,注意首端有多个空格的情况需要处理。还要注意字符中间有多个空格的情况。我采取的的策略是,先把所有字母的字符全部转为大写,这样一来,剩下的工作就只有筛选了。

难点:不要用scanf读入,scanf读入会自动忽略空格,应用gets语句,但是gets语句读入会会读入一个换行字符,所以还要用一个字符串ch去接一下这个换行,尼玛,我真是涨姿势了!

#include<cstdio>#include<string.h>#include<iostream>#include<string>using namespace std;const int MAX = 300;int main(){    int t,l;    char str[MAX];    char ch[2];    scanf("%d",&t);    gets(ch);    {        for(int i = 1;i <= t;i++)        {            int k = 0;            char ans[MAX];            gets(str);            l = strlen(str);            for(int i = 0;i < l;i++)            {                if(str[i] >= 'a' &&str[i] <= 'z')                    str[i] = str[i]-'a'+'A';            }            if(str[0] != ' ')                ans[k++] = str[0];            for(int i = 0;i < l;i++)            {               if(!(str[i] >= 'A' &&str[i] <= 'Z')&&str[i+1] != ' ')                    ans[k++] = str[i+1];            }            ans[k++] = '\0';            printf("%s",ans);            printf("\n");        }    }}


0 0