翻译器DIY它———算在英文文本中的单词数,字符和行数
咳咳。这部分应该是序列化编译器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它———算在英文文本中的单词数,字符和行数相关推荐
- 5.1统计英文文件中的单词数python
本关任务:编写一个能统计文件中单词数量的小程序,用replace替换文本内的标点 代码如下: # 补充你的代码 a = input() import string with open(f'/data/ ...
- 【java】统计英文文本中某些字母出现的次数
如何统计英文文本中某些字母出现的次数 public class Java_3 {public static void main(String[] args) {String text = " ...
- Python代码 | 文本操作 统计英文文本中,每个字母出现的次数
Python代码 | 文本操作 统计英文文本中,每个字母出现的次数 # -*- coding: utf-8 -*- # 使用oepn获取文件路径 # path=open("arrogant. ...
- python怎么统计单词总数_Python【习题】:统计纯英文文本中总字数
人生苦短,我用Python 环境:Windows 10 64-bit, python == 3.6.4 , PyCharm CE == 2018.1 声明:学习资源来自于网络,这里是自己学习笔记总结与 ...
- 编程,统计用户输入的一串英文文本中各单词的出现频率。
编程,统计用户输入的一串英文文本中各单词的出现频率.注意: (1)", . ? !"等标点符号也作为分割单词的依据. (2)去除of.a.an.the这些无意义词语. (3)单词不 ...
- JS实现文本中查找并替换字符
JS实现文本中查找并替换字符 效果图: 代码如下,复制即可使用: <!DOCTYPE html><html> <head><style type=" ...
- Wordcounter,使用Lambdas和Fork / Join计算Java中的单词数
这些天来,我发布了Wordcounter ,这是一个Java库和命令行实用程序,用于对文本文件中的单词进行计数并对单词计数进行分析,从而大量使用了功能编程结构和并行计算方法. 这是我在"令人 ...
- java 文件中查找指定的单词,查找指定文本文件中的单词数的Java程序
查找指定文本文件中的单词数的Java程序 1 说明 在此程序中,我们需要找到给定文本文件中出现次数最多的单词.这可以通过使用文件指针以读取模式打开文件来完成.逐行读取文件.一次分割一行并存储在数组中. ...
- Spark从本地文件中统计包含某个字母的行数
Spark从本地文件中统计包含某个字母的行数: import org.apache.spark.SparkConf; import org.apache.spark.sql.Dataset; impo ...
最新文章
- “编程能力差,90%是输在这点上!”谷歌AI开发专家:逆袭并没那么难!
- 自由自在公司解读休闲食品的五大发展趋势
- CakePHP之Model
- 【ArcGIS微课1000例】0009:ArcGIS影像拼接(镶嵌、镶嵌至新栅格)
- YBTOJ:斐波拉契(矩阵快速幂)
- Python3——文件与异常
- 第一个Android程序
- OpenCV 4.x 中请别再用HAAR级联检测器检测人脸!有更好更准的方法
- pantone潘通色卡对照表_赶快收藏!快速对色必备:潘通色卡电子版(一)1TPX~113TPX...
- Windows 中实现 Java 本地方法
- python基础——map/reduce
- python通过jdbc连接hive_Python使用JDBC连接Hive
- [数模美赛]2018数学建模美赛MCM总结
- Openv-python学习1--图片加载
- Shell脚本之IP验证
- VSS配置及使用说明
- 一文搞懂“正态分布”所有重要知识点
- CF 375C Circling Round Treasures(状态压缩+bfs)
- 高赞回答:为什么高级程序员不必担心自己的技术过时?
- GIS中的坐标系问题