当前位置: 首页 > news >正文

hihoCoder1603

#1603 : 提取用户名

时间限制: 10000ms
单点时限: 1000ms
内存限制: 256MB

描述

在现在的各种互联网应用中,在一段文字中使用'@'字符来提起一名用户是流行的做法。  

例如:

"@littleho submitted his code 30 times before he got passed the system test."  

其中littleho就是一个用户名。我们规定在一段文字中,'@'字符之后一段连续的、非空的大小写英文字母组成的字符串被视为提起的用户名。  

给定一段文字,请你输出其中所有提到的用户名。

输入

一行文本,只包含大小写字母、标点符号和空格。长度不超过800。

输出

按文本中的顺序输出所有提到的用户名,之间用一个空格隔开。重复提到的相同用户名也重复输出。

样例输入
@abc:@@,@littleho's code is so confusing. @abc.
样例输出
abc littleho abc

再加几组数据:
Input:
@....gfjhsf@  @nmn
@,, @m
@m
@ASD@S@S@@@EEEE@.J

Output:
nmn
m
ASD S S EEEE

分析:直接模拟输出就好。

#include<cstdio>
char s[100000],sub[1000];
int main()
{
    gets(s);
    int len=0,i=0,flag=0,t=0;
    while(s[i])
    {
        if(s[i]=='@') 
        {
            if(flag&&len>0)
            {sub[len]='\0';if(t++) printf(" ");printf("%s",sub);len=0;}
            else
            {len=0;flag=1;}
            i++;continue;
        }
        if(flag)
        {
            if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z'))
            {sub[len++]=s[i];}
            else if(len>0)
            {
                sub[len]='\0';
                if(t) printf(" ");
                printf("%s",sub);
                t++;
                len=0;flag=0;
            }
            else {len=0;flag=0;}
        }
        else {len=0;flag=0;}
        i++;
    }
    if(flag&&len>0) 
    {
        sub[len]='\0';
        if(t++) printf(" ");
        printf("%s",sub);
    }
    if(t) printf("\n");
    return 0;
}
View Code

 

转载于:https://www.cnblogs.com/ACRykl/p/8306126.html

相关文章:

  • jsp:choose 、when 和 和 otherwise 一组标签
  • “浏览器模式”和“文档模式”之间的区别
  • ​VRRP 虚拟路由冗余协议(华为)
  • h5 meta 移动
  • JQ-weui中的日期选择控件关于时间段的设置!
  • Can't get Kerberos realm
  • 三张图彻底了解Java中字符串的不变性
  • 没有方法异常NoSuchMethodException
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Elasticsearch 5.5.1-head插件安装
  • 学习OpenGL ES之教你实现SkyBox
  • windows下安装rabbitmq以及php扩展amqp
  • python 反射
  • 01. Consul 入门
  • 程序员行话(黑话)汇总
  • 【108天】Java——《Head First Java》笔记(第1-4章)
  • Android单元测试 - 几个重要问题
  • Android开源项目规范总结
  • angular2开源库收集
  • JavaScript实现分页效果
  • Java教程_软件开发基础
  • October CMS - 快速入门 9 Images And Galleries
  • React-redux的原理以及使用
  • vue中实现单选
  • Wamp集成环境 添加PHP的新版本
  • 给新手的新浪微博 SDK 集成教程【一】
  • 手写双向链表LinkedList的几个常用功能
  • 文本多行溢出显示...之最后一行不到行尾的解决
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • $HTTP_POST_VARS['']和$_POST['']的区别
  • (1)(1.11) SiK Radio v2(一)
  • (1)(1.8) MSP(MultiWii 串行协议)(4.1 版)
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (附源码)计算机毕业设计ssm本地美食推荐平台
  • (转)【Hibernate总结系列】使用举例
  • (转)PlayerPrefs在Windows下存到哪里去了?
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • *1 计算机基础和操作系统基础及几大协议
  • ../depcomp: line 571: exec: g++: not found
  • .net mvc actionresult 返回字符串_.NET架构师知识普及
  • .NET/C# 使用 ConditionalWeakTable 附加字段(CLR 版本的附加属性,也可用用来当作弱引用字典 WeakDictionary)
  • .NET框架设计—常被忽视的C#设计技巧
  • .NET面试题解析(11)-SQL语言基础及数据库基本原理
  • .NET项目中存在多个web.config文件时的加载顺序
  • .NET中使用Protobuffer 实现序列化和反序列化
  • .sh
  • /usr/bin/python: can't decompress data; zlib not available 的异常处理
  • @EnableAsync和@Async开始异步任务支持
  • [ CTF ] WriteUp- 2022年第三届“网鼎杯”网络安全大赛(朱雀组)
  • [20170705]lsnrctl status LISTENER_SCAN1
  • [android] 切换界面的通用处理
  • [bzoj1324]Exca王者之剑_最小割
  • [C#]使用DlibDotNet人脸检测人脸68特征点识别人脸5特征点识别人脸对齐人脸比对FaceMesh
  • [codevs1288] 埃及分数
  • [Design Pattern] 工厂方法模式