日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

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

發布時間:2025/5/22 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 翻译器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它———算在英文文本中的单词数,字符和行数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。