博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hihoCoder1603
阅读量:6189 次
发布时间:2019-06-21

本文共 1481 字,大约阅读时间需要 4 分钟。

#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
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

你可能感兴趣的文章
LeetCode OJ:Maximal Rectangle(最大矩形)
查看>>
Nancy之静态文件处理
查看>>
(转)style,currentStyle,getComputedStyle的区别和用法
查看>>
项目经理的这几个常用套路,你一定要知道!
查看>>
论网络工程中,系统开发设计可行性研究及市面产品对比!
查看>>
关于opencv的cv2.WINDOW_一类
查看>>
ML三(人工神经网络)
查看>>
苹果开发者中心宕机8天终于回归
查看>>
Gitlab-API各状态码解释
查看>>
IDE工具的[多行光标编辑模式]
查看>>
Dubbo框架协议总结
查看>>
由树的定义和递归想到的
查看>>
项目总结13:Jav文件压缩-InputStream转化为base64-Base64解码并生成图片
查看>>
spark学习5(hbase集群搭建)
查看>>
Qt编写的RTSP播放器+视频监控(android版本)
查看>>
Qt编写自定义控件属性设计器
查看>>
第五章 触发器
查看>>
[洛谷P4838]P哥破解密码
查看>>
homebrew osx下面最优秀的包管理工具
查看>>
Floyd
查看>>