C语言做的文本词频数量统计功能

文本词频统计器

这是一个用C语言编写的文本词频统计程序,可以读取文本文件并统计每个单词的出现次数,然后输出频率最高的10个单词。

功能特点

  • 读取文本文件(支持.txt等文本格式)
  • 自动识别单词(字母和数字组合)
  • 忽略大小写差异
  • 统计每个单词的出现次数
  • 按出现频率排序
  • 输出前10个高频单词
  • 支持大文件处理

编译方法

bash 复制代码
gcc -Wall -Wextra -std=c99 -O2 -o word_frequency word_frequency.c

使用方法

基本用法

bash 复制代码
./word_frequency <文本文件名>

示例

bash 复制代码
# 使用提供的示例文件
./word_frequency sample.txt

# 使用自己的文本文件
./word_frequency my_text.txt

Windows用户

bash 复制代码
# 编译
gcc -o word_frequency.exe word_frequency.c

# 运行
word_frequency.exe sample.txt

输出示例

markdown 复制代码
正在读取文件: sample.txt
文件读取成功,开始分析...

=== 词频统计结果 ===
排名    单词           出现次数
--------------------------------
1       the            8
2       dog            4
3       lazy           4
4       fox            3
5       quick          3
6       brown          3
7       jumps          2
8       over           2
9       was            2
10      testing        2

总共统计了 45 个不同的单词

程序特性

  1. 智能单词识别:程序会自动识别由字母和数字组成的单词
  2. 大小写不敏感:所有单词都会被转换为小写进行统计
  3. 高效排序:使用快速排序算法对结果进行排序
  4. 内存管理:动态分配内存,支持大文件处理
  5. 错误处理:包含完善的错误处理机制

技术实现

  • 使用结构体存储单词和计数
  • 动态内存分配处理文件内容
  • 快速排序算法进行结果排序
  • 标准C库函数进行文件操作和字符串处理

文件说明

  • word_frequency.c - 主程序源代码
  • sample.txt - 示例文本文件
  • README.md - 说明文档

系统要求

  • C编译器(如GCC、Clang等)
  • 支持C99标准
  • 足够的可用内存(取决于文本文件大小)

注意事项

  • 程序最多支持统计10000个不同的单词
  • 单个单词最大长度为100个字符
  • 确保输入文件存在且可读
  • 程序会忽略标点符号,只统计字母数字组合
相关推荐
悟空码字1 分钟前
SpringBoot 整合 ElasticSearch,给搜索插上“光速翅膀”
java·后端·elasticsearch
星浩AI15 分钟前
手把手教你用 RAG 打造专属知识库问答系统
后端
喵个咪22 分钟前
开箱即用的 GoWind Admin|风行,企业级前后端一体中后台框架:深度解析 Wire 依赖注入集成实践
后端·go
回家路上绕了弯23 分钟前
代码的三大核心素养:如何同时兼顾可维护性、可扩展性、可测试性
分布式·后端
南棱笑笑生23 分钟前
20251215给飞凌OK3588-C开发板适配Rockchip原厂的Buildroot【linux-6.1】系统时统计eth1的插拔次数
linux·c语言·开发语言·rockchip
快手技术25 分钟前
入围AA总榜Top 10,Non-Reasoning Model榜单第一!KAT-Coder-Pro V1 新版本踏浪归来!
前端·后端·前端框架
小坏讲微服务25 分钟前
Spring Boot4.0整合RabbitMQ死信队列详解
java·spring boot·后端·rabbitmq·java-rabbitmq
苏三说技术27 分钟前
工作中最常用的6种缓存
后端
刃神太酷啦31 分钟前
Linux 进程核心原理精讲:从体系结构到实战操作(含 fork / 状态 / 优先级)----《Hello Linux!》(6)
java·linux·运维·c语言·c++·算法·leetcode
永恒-龙啸35 分钟前
spooling假脱机输入输出模拟
c语言·开源·github