统计单词数量(文件)(*)

ops/2024/11/21 0:24:31/

请编写函数,统计英文文章的单词数量。

函数原型
int CountWord(FILE *f);

说明:参数 f 为文件指针。函数值为该文件的单词数量。

裁判程序
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>int CountWord(FILE *f);int main()
{FILE *f;int n;f = fopen("Story.txt", "r");if (!f){puts("文件无法打开!");exit(1);}n = CountWord(f);if (fclose(f)){puts("文件无法关闭!");exit(1);}printf("单词数: %d\n", n);return 0;
}/* 你提交的代码将被嵌在这里 */

打开 Windows 记事本软件,复制下面的文章内容,保存文件并命名为“Story.txt”。 

Story.txt

A Cure for a HeadacheOne day a man went into a chemist's shop and said, "Have you anything to cure a
headache?"
The chemist took a bottle from a shelf,  held it under the gentleman's nose and
took out the cork.  The smell was so strong that tears came into the man's eyes
and ran down his cheeks.
"What did you do that for?"  he said angrily,  as soon as he could get back his
breath.
"But that medicine has cured your headache, hasn't it?" said the chemist.
"You fool," said the man, "It's my wife that has the headache, not me!"
样例输入
(无)
输出样例
单词数: 108

代码:

int CountWord(FILE* f)
{char word[1000];int count = 0;while (fscanf(f, "%s", word) != EOF){for (int i = 0; word[i]; i++){if (isalpha(word[i])){count++;}}}return count;
}

 注意:

1.fscanf(f, "%s", word) != EOF  每次读取一个字符串,遇到空格不读,地址为word

2.isalpha为检查所传的字符是否是字母的函数。


http://www.ppmy.cn/ops/17166.html

相关文章

[C++][算法基础]分组背包问题(动态规划)

有 &#x1d441; 组物品和一个容量是 &#x1d449; 的背包。 每组物品有若干个&#xff0c;同一组内的物品最多只能选一个。 每件物品的体积是 &#xff0c;价值是 &#xff0c;其中 &#x1d456; 是组号&#xff0c;&#x1d457; 是组内编号。 求解将哪些物品装入背包&a…

4月25日 C++day4

#include <iostream> using namespace std;class Person {const string name;int age;char sex; public:Person():name("lisi"){cout << "Person无参构造" << endl;}Person(string name,int age,char sex):name(name),age(age),sex(sex)…

nvm安装及使用(mac)

安装 curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash# orwget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash这步会自动在你的文件中添加nvm配置文件. 如果你用的是zsh, 那就是 ~/.zshrc. 如果你用的 bas…

设计模式-创建型模式-工厂模式

工厂模式是一种用来创建对象的模式&#xff0c;它将对象的创建和使用分离开来&#xff0c;使得代码更加灵活和可扩展。 下面代码中CarFactory是一个工厂类&#xff0c;它根据传入的参数来创建不同类型的Car对象。通过工厂模式&#xff0c;在不改变客户端代码的情况下轻松地添加…

GIT 仓库迁移

GIT 仓库迁移 远端仓库迁移 ## 在远端提前创建仓库print-server ## 克隆所有分支 git clone --mirror http://X.X.X.X:8088/Print_Client.git ## 进入本地克隆目录 cd Print_Client.git ## 推送远端 git push --mirror http://X.X.X.X:8088/print/print-server.git本地项目迁…

睫毛膏上架亚马逊销售需要做什么准备 HRIPT / RIPT斑贴试验

睫毛膏上架需要办理&#xff1a;HRIPT / RIPT斑贴试验COA成分分析证书BCOP认证报告&#xff01; 什么是BCOP&#xff1a; 亚马逊美国站对接触眼睛的眼影&#xff0c;液体眼线笔&#xff0c;磁性睫毛&#xff0c;假睫毛等产品&#xff0c;需提供BCOP&#xff08;Bovine Corneal…

密码学基础 -- ECC

目录 1.ECC概述 1.1 汽车行业倾向使用ECC 1.2 ECC的难以理解 2.ECC原理 2.1 椭圆曲线真的不是一个椭圆 2.2 从图形了解ECC 2.3 ECC用法 3.ECC曲线汇总 1.ECC概述 1.1 汽车行业倾向使用ECC 当前公认安全有效的三大类公钥密钥体制分别为基于大数因子分解难题(RSA)、离散…

NLP step by step -- 了解Transformer

Transformer模型 Transformer相关历史 首先我们先看一下有关Transformer模型的发展历史&#xff0c;下面的图是基于Transformer架构的一些关键模型节点&#xff1a; 图片来源于Hugging Face 图片来源于Hugging Face Transformer 架构 于 2017 年 6 月推出。原本研究的重点是…