咳咳。这部分应该是序列化编译器DIY的,然而,在这样做DIY第一次使用前flex 为了练练手,对于后者的理解是有帮助。

在word 我经常看到一个字计数功能,因此,它是如何实现,当然,首先想到的是要经过整个文本换行和空格分析字符串,。但是能不能简单点了,事实上对文本做单词分析,大家都知道怎么做,难得地方可能就是代码的实现了。那么如今假设使用正則表達式来实现的话,那么一切问题就Over 了。

环境:ubuntu(当然装了flex的windows和mac也能够)

原码:

%{
unsigned long chars=0;
unsigned long words=0;
unsigned long lines=0;
%}%%
[a-zA-Z]+               {words++;chars+=strlen(yytext);}
[a-z\-A-z]+             {words++;chars+=strlen(yytext);}
[0-9]+                  {words++;chars+=strlen(yytext);}
[.|,|\b| |\t|\r]        {chars++;}
[\n]                    {lines++;chars++;}
%%int main()
{char filename[100];printf("统计一个英文文件里字符、单词、行数。\n");printf("请输入要计算的文件名称:");scanf("%s",filename);yyin=fopen(filename,"r");printf("開始进行统计...\n");printf("没有定义的字符:");yylex();printf("\n字符数:%ld\n", chars);printf("单词数:%ld\n", words);printf("行数  :%ld\n", lines);return 1;
}
int yywrap()
{return 1;
}

那么解释第一个正则式[a-zA-Z]+  表示一个或者多个由大写和小写字母组成的单词

[a-z\-A-z]+             对于特殊的中间加"-"的单词

[0-9]+                 数字集合

[.|,|\b| |\t|\r]          特殊符号集合

在编写完上述代码之后,那么直接用flex 进行编译。将得到一个.c文件,接着对C文件编译生成二进制代码执行就可以。

測试文本:

my name is te-name
%%%

測试结果:

统计一个英文文件里字符、单词、行数。
请输入要计算的文件名称:test.txt
開始进行统计...
没有定义的字符:%%%
字符数:20
单词数:4
行数  :2

版权声明:本文博客原创文章。博客,未经同意,不得转载。

转载于:https://www.cnblogs.com/mfrbuaa/p/4643724.html

翻译器DIY它———算在英文文本中的单词数,字符和行数相关推荐

  1. 5.1统计英文文件中的单词数python

    本关任务:编写一个能统计文件中单词数量的小程序,用replace替换文本内的标点 代码如下: # 补充你的代码 a = input() import string with open(f'/data/ ...

  2. 【java】统计英文文本中某些字母出现的次数

    如何统计英文文本中某些字母出现的次数 public class Java_3 {public static void main(String[] args) {String text = " ...

  3. Python代码 | 文本操作 统计英文文本中,每个字母出现的次数

    Python代码 | 文本操作 统计英文文本中,每个字母出现的次数 # -*- coding: utf-8 -*- # 使用oepn获取文件路径 # path=open("arrogant. ...

  4. python怎么统计单词总数_Python【习题】:统计纯英文文本中总字数

    人生苦短,我用Python 环境:Windows 10 64-bit, python == 3.6.4 , PyCharm CE == 2018.1 声明:学习资源来自于网络,这里是自己学习笔记总结与 ...

  5. 编程,统计用户输入的一串英文文本中各单词的出现频率。

    编程,统计用户输入的一串英文文本中各单词的出现频率.注意: (1)", . ? !"等标点符号也作为分割单词的依据. (2)去除of.a.an.the这些无意义词语. (3)单词不 ...

  6. JS实现文本中查找并替换字符

    JS实现文本中查找并替换字符 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html> <head><style type=" ...

  7. Wordcounter,使用Lambdas和Fork / Join计算Java中的单词数

    这些天来,我发布了Wordcounter ,这是一个Java库和命令行实用程序,用于对文本文件中的单词进行计数并对单词计数进行分析,从而大量使用了功能编程结构和并行计算方法. 这是我在"令人 ...

  8. java 文件中查找指定的单词,查找指定文本文件中的单词数的Java程序

    查找指定文本文件中的单词数的Java程序 1 说明 在此程序中,我们需要找到给定文本文件中出现次数最多的单词.这可以通过使用文件指针以读取模式打开文件来完成.逐行读取文件.一次分割一行并存储在数组中. ...

  9. Spark从本地文件中统计包含某个字母的行数

    Spark从本地文件中统计包含某个字母的行数: import org.apache.spark.SparkConf; import org.apache.spark.sql.Dataset; impo ...

最新文章

  1. “编程能力差,90%是输在这点上!”谷歌AI开发专家:逆袭并没那么难!
  2. 自由自在公司解读休闲食品的五大发展趋势
  3. CakePHP之Model
  4. 【ArcGIS微课1000例】0009:ArcGIS影像拼接(镶嵌、镶嵌至新栅格)
  5. YBTOJ:斐波拉契(矩阵快速幂)
  6. Python3——文件与异常
  7. 第一个Android程序
  8. OpenCV 4.x 中请别再用HAAR级联检测器检测人脸!有更好更准的方法
  9. pantone潘通色卡对照表_赶快收藏!快速对色必备:潘通色卡电子版(一)1TPX~113TPX...
  10. Windows 中实现 Java 本地方法
  11. python基础——map/reduce
  12. python通过jdbc连接hive_Python使用JDBC连接Hive
  13. [数模美赛]2018数学建模美赛MCM总结
  14. Openv-python学习1--图片加载
  15. Shell脚本之IP验证
  16. VSS配置及使用说明
  17. 一文搞懂“正态分布”所有重要知识点
  18. CF 375C Circling Round Treasures(状态压缩+bfs)
  19. 高赞回答:为什么高级程序员不必担心自己的技术过时?
  20. GIS中的坐标系问题

热门文章

  1. TZOJ 4865 统计单词数(模拟字符串)
  2. nib、xib、storyboard(故事板)
  3. Linux进阶:DNS详解
  4. find指定具体时间参数-newermt
  5. windows 2012 r2 x64 安装IIS注意事项
  6. 《Excel 职场手册:260招菜鸟变达人》一第 20 招 怎样在单元格文字前加空白
  7. 【微信网页版】给所有微信群发消息
  8. js里规定输入的数值只能是数字
  9. 读javascript高级程序设计06-面向对象之继承
  10. 机房收费系统重构(三)—工厂+反射+DAL