C++程序设计问题:统计多行文本中的行数、单词数及字符数

2025-05-10 09:21:00
推荐回答(3个)
回答1:

首先:1你要处理的文本是以什么形式存放的:1:文本方式磁盘存放2:二进制方式磁盘存放3:还是用手输入的呢?不管什么方式:先建一个缓冲区就是一个存放要处理文本的字符数组:char buffer[MAX_LEN],MAX_LEN是你自己定义的文本字节长度比如说:#define MAX_LEN 10000;
2:然后想办法把你要处理的文本读入到buffer中
3:确认文本是以什么分行的:一般都是回车符‘\r’,
让后处理buffer中的数据:遇到回车符就是一行,即行计数器加1;
遇到一个或多个空格就是一个字符串(单词或数字字符)这个你自己
写一个判断字符串是数字字符串还是单词,然后相应的单词或数字字
符串计数器加1;
4:当buffer遍历完后,结果就出来了;

回答2:

这是单词计数最好的程序之一,有点不满足你的要求,凑合用吧~~
#include

#define IN 1
#define OUT 0

int main()
{
int c;
int line;
int nw;
int nc;
int state;

state = OUT;
line = nw = nc = 0;
while( ( c = getchar() ) != EOF )
{
++nc;
if( '\n' == c )
++line;
if( ' ' == c || '\n' == c || '\t' == c )
state = OUT;
else if( state = OUT )
{
state = IN;
++nw;
}
}

printf( "%d %d %d\n", line, nw, nc );

return 0;
}

回答3:

两个问题:
1.单词和单词件都用' '间隔,但有标点呢?标点后又没有空格?
2.空格算不算在字符数里面?回车呢?
把你的文档打出来发现a~z,A~Z,标点加起来才497(前提每行最后标点后有空格)