作业帮 > 综合 > 作业

c++ 输入一句话,求单词的长度和出现次数

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/28 15:58:18
c++ 输入一句话,求单词的长度和出现次数
c++ 输入一句话,求单词的长度和出现次数、
例如:hot it is a day of
单词长度:1 出现次数:1
单词长度:2 出现次数:3
单词长度:3 出现次数:2
#include
#include
#define STOP '|'
int main(void)
{
char c;
char prev;
long n_chars = 0L;
int n_lines = 0;
int n_words = 0;
int p_lines = 0;
int inword = 0;
printf("Enter text to be analyzed( | to be quit):\n ");
prev = '\n';
while((c = getchar()) != STOP)
{
n_chars++;
if (c == '\n')
n_lines++;
if (!isspace(c) && !inword)
{
inword = 1;
n_words++;
}
if(isspace (c) && inword)
inword = 0;
prev = c;
}
if(prev != '\n')
p_lines = 1;
printf("characters = %ld,word = %d,line = %d,",
n_chars,n_words,n_lines);
printf("partial lines = %d\n",p_lines);
return 0;
}
prev 是一个字符变量,用于检查是否到了一行的末尾.这个例子不是很难,用#define是为了增加程序的可修改性,你可以只看关键的方法部分也就是如何计算单词数和行数.至于出现的次数,1、你要重新定义一个变量和数组也可以用指针分配空间的方式,将每一个不同的字符都存入数组中,以备以后判断;2、在后面要加一个判断语句,判断目前的字符与以前出现过的字符是否重复,重复就++,否者就继续下一个字符,在这个程序的基础上应该不难.