HDoj-2072-字数
字数
Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)
Total Submission(s): 29470 Accepted Submission(s): 7081
you are my friend
#
4
//*************Set****************/
#include<iostream>
#include<sstream>
#include<string>
#include<set>
using namespace std;
int main()
{
string line,word;
set <string> list;
while(getline(cin,line)&&line!="#")
{
list.clear();
istringstream stream(line);
while(stream>>word)
{
if(list.end()==list.find(word))
list.insert(word);
}
cout<<list.size()<<endl;
}
return 0;
}
//************fopen文件*******************/
#include<stdio.h>
#include<string.h>
#define N 10000
char article[N],tmp[101],word[N][101];
int main()
{ int len,pos,k,cnt;
freopen("hdu_2072_in.txt","r",stdin);
freopen("hdu_2072_out.txt","w",stdout);
while(gets(article)!=NULL)
{
if(article[0]=='#') break;
cnt=0;
len=strlen(article);
pos=0;
while(pos<len)
{
sscanf(article+pos,"%s",tmp);
for(k=0;k<cnt;k++)
if( strcmp(word[k],tmp)==0) break;
if( k==cnt ) strcpy(word[cnt++],tmp);
pos += strlen(tmp) + 1; }
printf("%d/n",cnt);
}return 0;
}
//************SSSSSSScanf*******//
HDOJ——2072单词数
SSCANF使用方法:(继qsort,bsearch,strchr后发现的又一好使的函数)
sscanf与scanf相似,都是用于输入的。仅仅是后者以键盘(stdin)为输入源。前者以固定字符串为输入源。 样例:
1. 常见使用方法。 char buf[512] ;
sscanf("123456 ", "%s", buf);//此处buf是数组名,它的意思是将123456以%s的形式存入buf中。
printf("%s\n", buf);
结果为:123456
2. 取指定长度的字符串。如在下例中。取最大长度为4字节的字符串。
sscanf("123456 ", "%4s", buf);
printf("%s\n", buf);
结果为:1234
3. 取到指定字符为止的字符串。 如在下例中,取遇到空格为止字符串。 sscanf("123456 abcdedf", "%[^ ]", buf);
printf("%s\n", buf);
结果为:123456
4. 取仅包括指定字符集的字符串。如在下例中,取仅包括1到9和小写字母的字符串。 sscanf("123456abcdedfBCDEF", "%[1-9a-z]", buf);
printf("%s\n", buf);
结果为:123456abcdedf
当输入:
sscanf("123456abcdedfBCDEF","%[1-9A-Z]",buf);
printf("%s\n",buf);
结果为:123456
5. 取到指定字符集为止的字符串。如在下例中。取遇到大写字母为止的字符串。 sscanf("123456abcdedfBCDEF", "%[^A-Z]", buf);
printf("%s\n", buf);
结果为:123456abcdedf
6、给定一个字符串iios/12DDWDFF@122,获取 / 和 @ 之间的字符串,先将 "iios/"过滤掉。再将非'@'的一串内容送到buf中
sscanf("iios/12DDWDFF@122", "%*[^/]/%[^@]", buf);
printf("%s\n", buf);
结果为:12DDWDFF
7、给定一个字符串“hello, world”,仅保留world。(注意:“,”之后有一空格)
sscanf(“hello, world”, "%*s%s", buf);
printf("%s\n", buf);
结果为:world
%*s表示第一个匹配到的%s被过滤掉。即hello被过滤了
假设没有空格则结果为NULL。
#include <stdio.h>
#include <string.h>
#include <math.h>
char word[1000];
char arr[100][100]; //arr用于存储曾经出现过的单词
int main()
{
int len, pos;
char temp[100];
while(gets(word) && strcmp(word, "#") != 0)//题目要求不是文章结尾为,注意strcmp用比較用“#”
{
len = strlen(word);//总长度(包括空格)
pos = 0;
int cnt = 0;
// pos加单词长度一直到>len
while(pos <= len)
{
sscanf(word + pos, "%s", temp); //把一个单词存入temp,空格省去(sscanf应该是读到空格截止,对于sscanf,空格非常重要)
//word + pos为指针指向位置
//printf("%s++++++++++++++++++++\n",temp);
int k;
for(k = 0; k < cnt; ++k)
if(strcmp(temp, arr[k]) == 0) //假设和曾经存入的单词同样,则不计数
break;
if(k == cnt)
strcpy(arr[cnt++], temp); //把temp存入arr,并计数器cnt加一
pos += strlen(temp) + 1;// +1表示加上空格,最后一次pos肯定会大于len
}
printf("%d\n", cnt);
}
return 0;
}
版权声明:本文博主原创文章,我们随意转载!好东西要大家一起分享嘛!
哈哈哈!。
HDoj-2072-字数的更多相关文章
- HDOJ.2072 单词数(map)
单词数 点我挑战题目 点我一起学习STL-MAP 题意分析 给出一行单词,判断这行有不同种的单词多少个,用map可以轻松解决. 代码总览 /* Title:HDOJ.2072 Author:pengw ...
- HDOJ 2072 单词数
Problem Description lily的好朋友xiaoou333最近很空,他想了一件没有什么意义的事情,就是统计一篇文章里不同单词的总数.下面你的任务是帮助xiaoou333解决这个问题. ...
- C与C++中非常少犯的错误,犯了后却非常难找出的错误
1.continue,break类的错误(HDU1877): #include<iostream> using namespace std; int main() { int a,b,m, ...
- hdoj:2072
单词数 Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submiss ...
- ACM 删数问题 SDUT 2072
http://acm.sdut.edu.cn/onlinejudge2/index.php/Home/Index/problemdetail/pid/2072.html 删数问题 Time Limit ...
- UITextView 输入字数限制
本文介绍了UITextView对中英文还有iOS自带表情输入的字数限制,由于中文输入会有联想导致字数限制不准确所以苦恼好久,所以参考一些大神的博客终于搞定,欢迎大家参考和指正. 对于限制UITextV ...
- WORD中字数和字符
在WORD中,一个汉字算1个字符,也算是1个字,一个标点符号也算1个字符,也算是1个字,WORD中字符数的统计分为(不计空格)和(计空格)的两种. 如果一篇文章仅由汉字和标点符号组成,那么字数=字符数 ...
- HDOJ 1009. Fat Mouse' Trade 贪心 结构体排序
FatMouse' Trade Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- HDOJ 2317. Nasty Hacks 模拟水题
Nasty Hacks Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Tota ...
随机推荐
- SQL 通配符
在搜索数据库中的数据时,SQL 通配符可以替代一个或多个字符.SQL 通配符必须与 LIKE 运算符一起使用,必须放在引号内. 在 SQL 中,可使用以下通配符: %:替代一个或多个字符. _:仅替代 ...
- IEEE发布2016年度编程语言排行榜
C 语言占据榜首,但大数据类是最大赢家. IEEE Spectrum 的第三次"最受欢迎编程语言"交互式排行榜新鲜出炉.因为不可能顾及到每一个程序员的想法,Spectrum 使用多 ...
- EasyUI DataGrid定制默认属性名称
EasyUI DataGrid绑定服务器返回Json数据的解决方案 1. 服务器返回的数据对象格式,及初始化返回值 public class RequestResult { private int c ...
- struts.xml配置文件标签详解
1.package: 作用:分模块化开发. 属性: name:包名. extends:由于struts2框架的一些核心功能的配置都在struts-default包中,所以一般都都直接或间接地继承str ...
- C#主要字典集合性能对比[转]
A post I made a couple days ago about the side-effect of concurrency (the concurrent collections in ...
- 【Android】使用FrameLayout布局实现霓虹灯效果
FrameLayout是五大布局中最简单的一个布局. 在这个布局中,整个界面被当成一块空白备用区域,所有的子元素都不能被指定放置的位置. 它们统统放于这块区域的左上角,并且后面的子元素直接覆盖在前面的 ...
- C#实训 打字游戏
StatusStrip控件 状态条 =进度条+标签 等集合体
- 查看Linux操作系统版本
1.查看内核版本命令: [root@server1 Desktop]# cat /proc/version Linux version 2.6.32-358.el6.x86_64 (mockbui ...
- 【转】SSIS 2012 – Package Configurations Menu Option Missing
原文:http://dataqueen.unlimitedviz.com/2012/01/ssis-2012-package-configurations-menu-option-missing/ I ...
- 自写AES加密解密工具类
此类主要用于加密与解密,采用128位ECB模式,PKCS5Padding填充补位. 可使用方法为加密返回二进制encryptBin(content, key).加密返回十六进制encryptHex(c ...