-
2021-11-15 07:44:40
输人一段含西文字符和中文字符的正文 ,统计字数、 字符数和行数。字是指一个中文字符或一个西文字符串(由空白符分隔);字符是指一个西文字符或一个中文字 符;空白符是指空格或回车或水平制表Tab
#include <stdio.h> int main() { char c; int cs = 0,words=0,rows=0; int fs = 0,isc = 0; while((c=getchar())!=EOF) { if(rows==0) rows++; if(fs==1) { fs=0; continue; } if(c == ' ' || c=='\t' || c=='\n' || c<0) { if(c<0) words++; if(isc == 1) words++; isc = 0; if(c < 0) { cs++; fs = 1; } if(c=='\n') { rows++; } continue; } cs++; isc = 1; fs = 0; } if(isc==1) words++; printf("字数:%d,字符数:%d,行数:%d\n",words,cs,rows); return 0; }
注意点:中文占3个字节;空格等分隔字符可能连续出现;遇到中文时,也相当于时前面英文串的分隔符
更多相关内容 -
Ruby中实现统计文件行数、单词数和字符数
2021-01-02 17:50:45在Ruby中我们定义一个wc方法,用来统计文件中出现的文本行数、单词数和字符数,ruby代码程序如下: 代码如下: def wc(filename) nline = nword = nchar = 0 File.open(filename) do |io| io.each_line do |... -
C语言中使用lex统计文本文件字符数
2020-09-03 19:57:32主要介绍了C语言中使用lex统计文本文件字符数,本文直接给出实现代码,需要的朋友可以参考下 -
Powershell小技巧之获取字符串的行数
2021-01-10 00:46:23这里有一个简单的方法教你获得一个字符串(不是数组哦)包涵多少行: $text = @' This is some sample text Let's find out the number of lines. '@ $text.Length - $text.Replace(`n,'').Length + 1 从技术上讲... -
统计字符数、行数、单词数
2019-04-28 19:16:22//单词计数:统计行数、单词数、字符数 //单词:不包含空格、制表符、换行符的字符序列 //单词计数:读到不是空字符::前一个是空字符:++。这样做直到下一个是空字符。 int main(void){ int line=0; int word=0;...#include <stdio.h> //单词计数:统计行数、单词数、字符数 //单词:不包含空格、制表符、换行符的字符序列 //单词计数:读到不是空字符::前一个是空字符:++。这样做直到下一个是空字符。 int main(void){ int line=0; int word=0; int cha=0; int last=0;//初始化为 前一个是空字符 int c; while((c=getchar())!=EOF){ cha++; if(c=='\n') line++; if(c!=' '&&c!='\t'&&c!='\n'){//读到字符 if(last==0){//前一个是空字符 word++; last=1; } }//else if(last==1)//前一个不是空字符 else if(c==' '||c=='\t'||c=='\n') //读到空字符 last=0; } printf("字符数为:%d",cha); printf("行数为:%d",line); printf("单词数为:%d",word); }
#include <stdio.h> //单词计数:统计行数、单词数、字符数 //单词:不包含空格、制表符、换行符的字符序列 //单词计数:读到不是空字符::前一个是空字符:++。这样做直到下一个是空字符。 int main(void){ int line=0; int word=0; int cha=0; int last=0;//初始化为 前一个是空字符 int c; while((c=getchar())!=EOF){ cha++; if(c=='\n') line++; if(c==' '||c=='\t'||c=='\n') //读到空字符 last=0; else if(last==0){//前一个是空字符 word++; last=1; } } printf("字符数为:%d",cha); printf("行数为:%d",line); printf("单词数为:%d",word); }
-
统计文本文件中的字符单词和行数
2010-01-21 14:18:35统计文本文件中的字符单词和行数,并报告统计结果,用MFC实现 -
Linux shell 获得字符串所在行数及位置的方法
2021-01-20 16:21:5801 获取字符串所在的行数 方式一:用grep -n [root@root]# cat test apple bit create delect exe flow good [root@root]# cat test | grep -n exe 5:exe [root@root]# cat test | grep -n exe | awk -F : '{... -
文件内容统计:对任意给定的.txt文件进行内容的字符数、行数、单词数进行统计
2021-03-13 05:47:07项目源码地址:https://gitee.com/xjtsh/projects功能实现:wc.exe -c file.c //返回文件 file.c 的字符数wc.exe -w file.c //返回文件 file.c 的单词总数wc.exe -l file.c //返回文件 file.c 的总行数wc.exe -o ...项目源码地址:https://gitee.com/xjtsh/projects
功能实现:
wc.exe -c file.c //返回文件 file.c 的字符数
wc.exe -w file.c //返回文件 file.c 的单词总数
wc.exe -l file.c //返回文件 file.c 的总行数
wc.exe -o outputFile.txt //将结果输出到指定文件outputFile.txt
项目简介
本项目的需求可以概括为:对程序设计语言源文件统计字符数、单词数、行数,统计结果以指定格式输出到默认文件中,以及其他扩展功能,并能够快速地处理多个文件。
可执行程序命名为:wc.exe,该程序处理用户需求的模式为:
wc.exe [parameter] [input_file_name]
存储统计结果的文件默认为result.txt,放在与wc.exe相同的目录下。
我采用的是Java语言实现。这个项目看似功能比较简单,实则工作量巨大,原因有三:一、对细节的要求比较高,从基本功能实现形式,小到命令输入的格式,都有比较严格的要求,必须按照要求来执行的话需要增加一定的工作耗时;需求分析、测试用例、博客撰写,所以整个项目开发的过程不单单只是考虑如何去实现功能这一件事情了,这也导致了所花费的时间增多;自身编程水平的限制,整个项目的流程要求非常规范,所以一步一步来执行的话需要连续的时间,然而当前课程任务并不轻松加上这几天正好又是另一门课程的课程设计上交截止时间,故而只能在零零碎碎的时间之中去完成项目设计和编码实现,在一定程度上降低了效率.但是最麻烦是.jar转.exe文件实在消耗了我大量的时间,网上博客众说纷纭,自己尝试的时候出现各种不理解的bug,不理解软件的运行过程对于我改进转换过程造成了极大的困难,好在,最终解决了问题。先这样吧,以后再汲取经验和教训,慢慢学习改进。
解题思路:
获取键盘数输入的指令,当读取到 '-'这个命令符号前缀时 ,我们能知道它将会和下一个字符一起构成一个操作指令,于是我们通过对下一个字符的读取就能够决定这个命令符号具体代表了什么含义。这里分几种情况:若下一个字符是 'c'、 'w'、'l'之类的基本功能参数,若下一个字符是 'o'、'e'之类的拓展功能参数,那么它会紧跟着一个txt文件,实现的是对文件内容停用词检索与执行结果输出到文件的操作功能;也存在下一个字符是程序未定义的参数字符如‘m’、'n'等,这时程序应当是无法识别这类命令参数的,不会执行任何操作,但一般也不会报错。获取待处理文件名和结果输出文件名,通过指令中是否含有-o指令判断是否采用默认的result.txt文件输出。以及获得输出文件名。本项目仅实现了文件的字符数、行数、单词数的统计。即分为一个主类和获取字符数、行数、单词数方、输出方法和main方法。待处理文件放在项目的统一文件夹内。
上述的部分代码展示如下:
在编译时输入指令,所以指令被储存在args[]数组中,区分默认的储存文件和用户自定义文件。统计指令中的.txt指令数,然后经过if判断获得待处理文件名
统计文件字符数时,对字符进行判断,如果读取的某一个字符为/,并且下一个字符也为/时,则后面的字符均为注释,否则继续自增
统计非正确单词数时,仅以一个或者空格或逗号作为分隔符。
统计包括空行在内的文件行数:
将统计内容输出到文件
测试设计
对于程序测试这一块,我一共设计了10个测试用例,其中包括8个相互独立的常规测试用例和2种类型的错误测试用例。具体测试如下:
1.基本字符测试
输入:–c test.txt
期望输出:字符数:148
实际输出:字符数:148
分析:符合预期输出
2.行数字符测试
输入:-l test.txt
期望输出:,文件总行数:7
实际输出:文件总行数:7
分析:符合预期输入
3. 单词测试
输入:-w test.txt
期望输出:,文件总行数:20
实际输出:文件总行数:20
分析:符合预期输入
4.基本功能测试
输入:-c -w -l test.txt
期望输出:字符个数:148
单词个数:20
文件总行数:7
实际输出:字符个数:148
单词个数:20
文件总行数:7
分析:符合预期输出
5. 部分扩展功能测试
输入:-c test.txt stoplist.txt -o output.txt
期望输出:字符数:143
实际输出:字符数:143
分析:符合预期输出
6.错误指令测试一(纯未定义命令参数)
输入:-m test.txt
期望输出:无期望
实际输出:无任何内容,但也未报错
分析:由于并未涉及命令参数-m,故而程序无法识别对应指令无法执行。
7.错误指令测试二(含未定义命令参数)
输入:-c -m test.txt
期望输出:无期望
实际输出:字符个数:148
分析:由于命令语句中含有已定义的命令参数-c,故而虽然含有-m,但是程序依然识别了-c并且执行了字符统计功能。
以上除-|指令以外均在dos界面测试,-|指令在dos界面未知错误,无任何输出,但是在IDEA中输出没有任何问题。希望在接下来的时间内会发现错误所在。
项目总结
总的说来,这次项目确实让我收获了不少东西,一开始因为要求的细节过于繁琐而且时常所以有些情绪化,在项目设计和开发的过程中没有完全静下心来去好好地想一下如何解决这个问题。随着提交时间的逼近才逐渐硬着头皮开始认真去搞这个作业,从最终的结果来看,确实学到了很多有用的东西,关于注释行、代码行与空行的正则表达式匹配判定法以及如何从提高一个程序的条件覆盖率去编写测试用例测试程序的性能,这些都是以后走向工作岗位很宝贵、很重要的东西。不过由于时间的仓促,我编写的程序仍存在着很多不尽如人意的地方,相关的测试用例的设计也有一定的缺憾和漏洞,这些都是我在今后学习中要去学习改进的地方。
-
java实现wc程序:统计文件词数、字符数、行数等
2018-09-23 20:01:08用java实现wc程序:统计文件词数、字符数、行数、空白行、代码行、注释行。注释行统计针对一些特殊情况不适用。 -
在Python中写字符串的行数
2021-02-04 12:20:21假设我们有一个字符串S,并且必须从左到右将给定字符串的字母写成几行。在这里,每行的最大宽度为100个单位,如果写一个字母会导致该行的宽度超过100个单位,则会在下一行上写该宽度。我们还有一个数组宽度,这里的...假设我们有一个字符串S,并且必须从左到右将给定字符串的字母写成几行。在这里,每行的最大宽度为100个单位,如果写一个字母会导致该行的宽度超过100个单位,则会在下一行上写该宽度。我们还有一个数组宽度,这里的widths [0]是'a'的宽度,widths [1]是'b'的宽度,依此类推。
我们必须找到两个问题的答案-多少行中至少有一个字符来自S
最后一条这样的线使用的宽度是多少?
我们将以长度为2的整数列表返回答案。
因此,如果输入像[4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10, 10,10,10,10,10]且S =“ bbbcccdddaaa”,则输出将为[2,4],因为除'a'以外的所有字母都具有相同的10,并且字符串“ bbbcccdddaa”将覆盖9 * 10 + 2 * 4 = 98个空格。对于最后一个“ a”,它写在第二行上,因为第一行只剩下2个单位。所以答案是2行,第二行再加上4个单位。
为了解决这个问题,我们将遵循以下步骤-行:= 1,计数:= 0
对于S中的每个i,行:=行+ 1
count:= widths [i的ASCII-97]
count:= count + widths [i的ASCII-97]
如果计数> 100,则
返回[行数]
让我们看下面的实现以更好地理解-
示例class Solution:
def numberOfLines(self, widths, S):
line = 1
count = 0
for i in S:
count += widths[ord(str(i))-97]
if count > 100:
line += 1
count = widths[ord(str(i))-97]
return [line, count]
ob = Solution()print(ob.numberOfLines([4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10], "bbbcccdddaaa"))
输入项[4,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10],"bbbcccdddaaa"
输出结果[2, 4]
-
解析统计文本文件中的字符数、单词数、行数。
2017-03-28 06:24:00用android 编程解析统计文本文件中的字符数、单词数、行数(作业) 主要代码 ... private void analysis() { String str = " "; int words = 0; int chars = 0; int lines = 0; int spaces = 0; int marks = 0; int ... -
编写一个统计输入字符中,行数、单词数和字符数的程序。
2019-06-02 12:51:39#include #define OUT 0 #define IN 1 main() { int hangshu,danci,zifu,state; hangshu = danci = zifu = 0;... printf("行数:%d ,单词:%d ,字符:%d",hangshu,danci,zifu); } 运行结果: -
shell查找某字符串在某文件中出现行数的方法
2020-09-15 01:22:24主要介绍了shell查找某字符串在某文件中出现行数的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
Java学习之统计一个文本文件中的字符(包括空格)数、单词数和行数
2021-04-23 14:05:00案例介绍: 首先需要创建一个WordsCount.txt的文本文件,在里面输入如下内容(内容自定义即可)。 然后编写以下代码并运行。 案例代码: import java.io.*; public class WordsCount { public static void main... -
linux下wc统计文件的个数、行数、字数、字节数等信息方法
2020-09-15 09:25:33下面小编就为大家带来一篇linux下wc统计文件的个数、行数、字数、字节数等信息方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧 -
从字符串中计算行数
2021-03-06 22:36:22我需要创建一个程序,删除标点,一些特定的单词,重复和返回单词左边和他们各自的行。我还需要跟踪复制品。例如Python空闲索引器:键入行,以a结尾。仅在行首吹来的是一阵轻快的风从北方,我青春的北方。风也很冷,... -
java – 计算文本文件中的行数,单词数和字符数
2021-03-14 16:59:06我试图从用户那里获取输入,并在文本文件中打印行数,单词和字符.但是,只有单词的数量是正确的,它总是为行和字符打印0.import java.util.*;import java.io.*;public class TextFileInfoPrinter{public static void ... -
Linux怎么统计文本的的行数/单词数和字符数?
2021-05-08 21:30:45Linux系统中想要统计文本的行数、单词和字符数量,该怎么统计呢?我们可以使用SecureCRT来统计,下面我们就来看看详细的教程。1、启动Linux系统,用SecureCRT(或者其他的ssh工具,如xshell等)连上Linux系统。也可以... -
Linux命令——统计文件的字符数、字节数及行数
2019-03-20 14:19:17Linux系统中的wc(word count)命令功能为统计文件中的字数、字节数及行数...-m:统计字符数 …… 3.使用示例: 不带参数: 行数 单词数 字节数 文件名 详细请参考: https://www.cnblogs.com/qiyebao/p/47072... -
统计行数、单词数与字符数(C语言)
2021-05-22 14:11:55程序用于统计行数、单词数与字符数。这里对单词的定义比较宽松,它是任何其中不包含空格,制表符或换行符的字符序列#include #define IN 1 /* inside a word */#define OUT 0 /* outside a word */int main(){int c,... -
2017.8.19 利用python统计文档中的单词数,行数和字符数
2017-08-19 10:39:04file_name='a.txt' line_count=0 word_count=0 character_count=0 with open(file_name,'r',encoding='utf-8') as ...print('行数:',line_count) print('单词数:',word_count) print('字母数:',character_count) -
Java使用字符流统计文件中包含的单词个数和行数
2019-12-15 17:54:35使用字符流统计文件中包含的单词个数和行数 import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.util.Scanner; public class UnicodeStatistics { public ... -
Linux命令-统计文件中的字节数、字数、行数:wc
2021-05-14 15:05:48Linux系统中的wc(Word Count)命令的功能为统计指定文件中的字节数、字数、行数,并将统计结果显示输出。1.命令格式:wc [选项]文件...2.命令功能:统计指定文件中的字节数、字数、行数,并将统计结果显示输出。该... -
C语言统计文件字符数 单词数 行数
2017-09-19 11:45:00前天用java写了这个功能,今天用C语言实现了一下,有点恼火的就是判断每行字符串最后一个字符了,如果为空格的话就要特别处理一下,还要注意,记得每行时都要将 isLastBlank重置为1,而且刚刚开始时候他的值是为0.... -
文件内容统计:对任意给定的.txt文件进行内容的字符数、行数、单词数进行统计...
2018-09-24 22:40:00项目源码地址:... 功能实现: wc.exe -c file.c //返回文件 file.c 的字符数 wc.exe -w file.c //返回文件 file.c 的单词总数 wc.exe -l file.c //返回文件 file.c 的总行数 wc.exe -o outputFile.txt... -
【编译原理】利用LEX计算文本文件的字符数等
2021-03-21 14:09:14实验环境 windows下的parser generator好像不能在windows 10用,所以最后我选择了Linux Linux: (1)Linux 2.6以上版本(2)GCC...//直接安装flex和bison 可能出现报错: E: Could not get lock /var/lib/dpkg/loc -
linux中的wc命令--统计给定文件的行数、字数和字符数
2020-12-14 20:41:21linux中的wc命令 【命令】wc 【功能】统计给定文件的行数、字数和字符数 【格式】wc [-lw] [-c] 文件名 常用选项 作用 -l/–line 统计行数 -w/–words 统计字数 -c/–bytes/–chars 统计字节数