输入
有多组数据,每组一行,每组就是一篇小文章。每篇小文章都是由小写字母,大写字母和空格组成,没有标点符号,遇到#时表示输入结束。
输出
每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单词的总数。
样例输入
you are my friend

样例输出
4
/-------------------------------------------------------------------------------------------------------------------/
统计不同单词的个数就是要把所有单词分别处理成字符串,然后相互比较计数,每句话有多个单词,所以我们需要开一个二维字符数组,W [A ][B ] ,每一行存一个字符串,就可以在不定义多个字符数组的情况下,存储多个字符数组,在这里我们要考虑定义二维数组的问题,不能越界,越界问题我会在其他博客中特别说明,这里先不多说。

#include <stdio.h>
#include <stdlib.h>
#include<string.h>
int main()
{int l,i,j,k,a,b;char s[10000],w[100][100];  // 一维数组接受整句话,二维数组把单词分开while(gets(s)){if(s[0]=='#')          //当接受为‘#’时结束break;a=0,b=0;k=0;l=strlen(s);for(i=0; i<l;)                {if(s[i]==' '){i++;}else{while(s[i]!='\0'&&s[i]!=' ') //这里要在下面特殊说明!!!{w[a][b++]=s[i++];}a++;b=0;}}int flag=0;for(i=0; i<a; i++){flag=0;for(j=0; j<i; j++){if(strcmp(w[i],w[j])==0)  {flag++;}}if(flag==0)k++;}printf("%d\n",k);memset(s,'\0',sizeof(s));  //这里清空两个字符数组,从而不影响下次循环使用。memset(w,'\0',sizeof(w));}return 0;
}
看到这里一定要注意,可能有人会疑惑,上面的IF中已经把空格的情况包含了,为什么这里还要判断是否为空格,大家可以想一下,当s[i]不是空格的时候,进入else,进入while,因为while中有i++,while会一直判断s[i]并且向后运行,如果这里不加判断是否为空格,那么在后面的s[i]中如果有空格的话也会存给w[a][b],所以这里一旦为空格,就退出循环,进行下面的步骤然后回到上面的IF判断,这时i值没有变,s[i]还是一个空格,到IF这里就会跳到i++了。

统计一篇文章里不同单词的总数。相关推荐

  1. Python 单词数 统计一篇文章里不同单词的总数

    ACM-ZZU 1178单词数 问题:统计一篇文章里不同单词的总数(如下图) 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束.每篇文章 ...

  2. 统计一篇文章里不同单词的总数

    Input 有多组数据,每组一行,每组就是一篇小文章.每篇小文章都是由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. Output 每组只输出一个整数,其单独成行,该整数代表一篇文章里不同单 ...

  3. 算法之统计一篇文章里不同单词的个数

    输入: 有多组数据,每组一行,每行就是一篇文章.每篇小文章由小写字母和空格组成,没有标点符号,遇到#时表示输入结束. 输出: 每组输入一个整数,其单独成行,该整数代表一篇文章里不同单词的总数. 例如: ...

  4. python:实现统计一篇文章中每个单词出现的次数 (附完整源码)

    python:实现统计一篇文章中每个单词出现的次数 文本分析是Python的一大利器.以下是一个简单的例子,用来统计一篇文章中每个单词出现的次数: text = "this is a sam ...

  5. 统计标点符号的次数 java_Java实现统计一篇文章中每个单词出现的次数

    使用Java正则表达式 和HashMap(哈希表)统计一篇文章中的每个单词出现的次数(去除标点符号和空格) import java.io.BufferedReader; import java.io. ...

  6. 如何统计一篇文章的字数

    大家好我是图恩,我们经常看到一些文章会显示字数和阅读完大概几分钟这个功能,提前给读者一个信息可以让读者决定是否继续阅读. 这个功能虽然看起来就是统计字数,但是其实也比较麻烦,因为一般情况下文章的内容属 ...

  7. 统计一篇文章中各个字母出现的次数和百分比

    package interview;import java.io.BufferedReader; import java.io.FileNotFoundException; import java.i ...

  8. Java实现统计一篇文章中英文单词出现的次数

    1. 准备工作 准备一篇英文文档放于D:\info.txt 输出 信息为Excel 表格.输出路径 D:\ 2. 创建一个Java maven 工程 引入依赖 <dependencies> ...

  9. 技术债是什么、怎么还?你想知道的都在这一篇文章里了!

    前两周写了关于技术债务的文章,尽管实践中会堆积技术债,但这个概念并不在我们的工作中频繁出现.这篇文章就系统性讲讲技术债,让大家避免知其然,不知其所以然. 一.技术债是什么 技术负债(英语:Techni ...

最新文章

  1. 彩色图批量转换成灰度图、批量格式转换、批量重命名
  2. 产品如何解决「发型师」与「消费者」的认知偏差?
  3. 开发者们,「Innovation 2021」网易应用创新开发者大赛正式开赛了!
  4. 常用汇编浮点操作指令
  5. [react] 在使用react过程中你都踩过哪些坑?你是怎么填坑的?
  6. @Autowired和构造方法执行的顺序解析
  7. 漫画 | 如何获得关系数据库王国的永久居住权?
  8. 市面上流行编曲软件盘点,那一款是你的菜?
  9. PostgreSQL学习手册(模式Schema)
  10. oracle启动crs要多久,oracle 10g CRS不能启动解决过程(hp-ux)
  11. PS流的格式和解析总结
  12. spark python编程 林子雨_林子雨-Spark编程基础Python版-厦门大学数据库室.ppt
  13. 【蓝桥杯】~C语言数组排序
  14. 网络安全知识竞赛选择题(161-200题)
  15. 俄罗斯方块是java_俄罗斯方块(java版)
  16. java jstl 配置_jstl的tld配置
  17. 程序员除了代码,连数字都神神秘秘的
  18. 机器学习指南_机器学习项目的研究指南
  19. 【HEVC简介】CTU、CU、PU、TU结构
  20. 一个人,向南走了一公里,然后向东走1公里,然后向北走一公里

热门文章

  1. 浦发银行MySQL机考,2020年浦发银行招聘考试内容有哪些呢
  2. 【沐风老师】3dMax道路标识生成器插件Road Markings Generator使用方法详解
  3. 四年前曾将以太坊逼到鬼门关,如今它因Defi而重生
  4. 服务器 如何修改盘符,服务器盘符怎么改
  5. vuejs调用支付宝支付页面
  6. 无锡市计算机表演赛举办方,青少年计算机表演赛在京圆满落幕 无锡代表队再创佳绩...
  7. 25分钟!一键部署Oracle 11GR2 HA 单机集群
  8. Python学习笔记19:列表 III
  9. parasolid 原因 效率_打赢了一场效率仗
  10. gae怎么打开谷歌学术?_了解Google App Engine(GAE)Java API第2部分:设置和简介