问题 A: name

时间限制: 1 Sec  内存限制: 256 MB

题目描述

lpq同学最近突然对外国人的名字产生了兴趣,特别是外国女生的名字,于是他开始试图去认识一些国外的女生。

随着认识的女生数量越来越多,lpq发现他的脑子不够用了——他不能准确地记住每个女生的名字。终于有一天,当他又把Hello Kitty和Dear Amy的名字弄混并遭到暴力后,他突发奇想:如果我把每个人的名字按不同部分的首字母变成缩写,就便于记忆,也就不会把名字弄混了。

比如:Hello Kitty简写成HK,Dear Amy简写成DA。

lpq还决定,对于名字简写长度大于5(不包括5)的女生,他便放弃交往。 
但是lpq认识的女生太多了,于是他想到了作为神犇的你,请你帮助他。

输入

第一行输入一个整数N(N<=10000),表示女生的人数。

接下的N行,每行包含一个字符串,为一个女生的全名,其中名字不同部分之间用’~!@#$%^&*()’分隔,字符串的长度不大于100。

保证输入的字符只有字母及’~!@#$%^&*()’(不包括引号)。

输出

输出第一行为一个整数K,表示可以继续交往的女生人数。

接下来K行,每一行包括由若干字母组成的字符串,表示对应名字的缩写。

样例输入

3
Hello@#^Kitty
Dear~^Amy
Sro~Li~Pei~Qian

样例输出

3
HK
DA
SLPQ
#include <stdio.h>
#include <ctype.h>
char name[110], str[10010][110];
int main()
{
    int n, ans, j;
    while (~scanf("%d", &n))
    {
        ans = 0;
        while (n--)
        {
            j = 0;
            scanf("%s", name);
            if (isalpha(name[0]))
                str[ans][j++] = name[0];
            for (int i = 1; name[i]; i++)
            {
                if (!isalpha(name[i-1]) && isalpha(name[i]))
                    str[ans][j++] = name[i];
            }
            str[ans][j] = '\0';
            if (j <= 5)
                ans++;
        }
        printf("%d\n", ans);
        for (int i = 0; i < ans; i++)
            printf("%s\n", str[i]);
    }
    return 0;
}

随机推荐

  1. Javascript - Jquery - 筛选

    筛选(JQuery Selector) JQuery是一个JavaScript库,它极大地简化了JavaScript编程.整个JQuery库的方法都在$这个工厂函数里,我们只需要使用$函数,而$函数会 ...

  2. Gulp简明使用教程

    Glup用自动化构建工具增强你的工作流程! 同类型的软件还有Grunt.关于两者的区别可以参考这篇文章Grunt VS Gulp 安装: $ npm install gulp -g $ npm ins ...

  3. 20165237 2017-2018-2 《Java程序设计》第5周学习总结

    20165237 2017-2018-2 <Java程序设计>第5周学习总结 教材学习内容总结 1.内部类:在一个类中定义另一个类:外嵌类:包含内部类的类. 2.内部类的类体中不能声明类变 ...

  4. ActiveMQ常见消息类型

    JMS由下面三部分组成:消息头.属性.消息体.其中消息体定义了五种消息体格式,也可以称为消息类型. JMS规范中的消息类型包括TextMessage.MapMessage.ObjectMessage. ...

  5. CF1105E Helping Hiasat

    题目地址:CF1105E Helping Hiasat 首先将问题转化成图论:对每个人建立一个点,将同一次修改后的所有人代表的点两两连一条边,那么最终所求的就是这个图的最大独立集 我们知道最大独立集是 ...

  6. Delphi 三层框架 DataSnap 的服务器端设置

    elphi 三层框架 DataSnap 的服务器端设置: DataSnap 框架有三个模块:DataSnap Server,Server Module,DataSnap Client Module. ...

  7. 通过全备+relaylog同步恢复被drop的库或表【转】

    MySQL 中drop 等高危误操作后恢复方法 实验目的: 本次实验以恢复drop操作为例,使用不同方法进行误操作的数据恢复. 方法: 利用master同步 伪master+Binlog+同步 利用b ...

  8. python3+selenium入门05-元素操作及常用方法

    学习了元素定位之后,来看一些元素的操作,还有一些常用的方法 clear()清空输入框内容 click()点击 send_keys()键盘输入 import time from selenium imp ...

  9. mongodb 创建更新语法

    创建文档 向MongoDB插入数据,使用insert, 如:db.refactor.insert({"refactor's blog":"http://www.cnblo ...

  10. hibernate框架学习之对象状态

    lHibernate对象共有三种状态 •瞬时状态:瞬时对象 •持久化状态:持久化对象 •托管状态:托管对象 l瞬时对象(Transient Object),简称TO l瞬时对象指的是应用程序创建出来的 ...