# zxl
**Repository Path**: zhang-xiaolin12/zxl
## Basic Information
- **Project Name**: zxl
- **Description**: zxl:专注于高效算法与技术实现的开源团队,致力于提升软件开发效率与质量,涵盖工具链、框架及应用开发。
- **Primary Language**: Unknown
- **License**: OSL-3.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2025-10-28
- **Last Updated**: 2025-10-30
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# C语言文本计数统计程序
#### 介绍
本项目是基于 C 语言开发的轻量级文本统计工具,功能类似 Linux 系统的 wc 命令,支持对文本文件的字符、单词、句子及代码相关行数(扩展功能)进行精准统计,适用于日常文本分析、代码审计等场景。
项目采用迭代式开发,从空项目逐步完善核心功能与扩展功能,并通过单元测试保障代码正确性,整体设计简洁、性能高效,支持 Windows、Linux 等多平台编译运行。
#### 功能说明
| 功能分类 | 功能描述 | 统计规则 |命令参数|
|---|---|---|---|
| 基础功能 | 统计字符数 | 包含所有字符(字母、数字、标点、空格、换行符等),中文在 UTF-8 编码下按 3 字节 / 字统计 | -c |
| 基础功能 | 统计单词数 | 仅字母组成的连续字符视为单词,非字母(空格、标点、数字)作为单词分隔符 | -w |
| 基础功能 | 统计句子数 | 以 .(句号)、?(问号)、!(感叹号)结尾的内容视为一个句子 |-s |
| 拓展功能 | 统计代码行/空行/注释行 | 代码行:非空、非注释的有效代码行;空行:仅含空白字符(空格、换行)的行;注释行:含 //(行注释)或 /*...*/(块注释)的行(适配 C 语言注释规则) | -l |
#### 文件列表说明
| 文件名称 | 文件类型 | 核心作用 |
|---|---|---|
|v0.1 v2.0 v3.0 | 源文件 | 项目主程序,包含基础功能(字符 / 单词 / 句子统计)、扩展功能(代码行统计)及命令行参数解析逻辑 |
| wc.h | 头文件 | 声明 wc.c 中的所有功能函数(如 count_chars/count_lines),供单元测试代码调用 |
| test_wc_basic.c | 测试源文件 | 基于 CUnit 框架的单元测试代码,覆盖基础功能的 12 个测试用例(空文件、特殊字符、中英文混合等场景) |
| test_empty.txt | 测试文件 | 空文件,用于测试 “无数据场景下的统计正确性” |
| test_basic.txt | 测试文件 | 基础英文文本文件(内容:Hello world! This is a test. How are you?),用于验证常规统计逻辑 |
| test_special.txt | 测试文件 | 含特殊字符 / 数字的文件(内容:Hello, world! 123 test... ---),验证特殊输入兼容性 |
| test_chinese.txt | 测试文件 | 中英文混合文件(内容:你好!这是中文测试。Hello C!),验证多语言统计正确性 |
| test_multi_line.txt | 测试文件 | 多换行文本文件(内容:Line 1.
Line 2?
Line 3!),验证换行对句子统计的影响 |
#### 运行例程及结果
例程 1:基础功能 - 统计英文文本(test_basic.txt)
预期结果:Word count: 9
实际输出:与预期一致,功能正常。
例程 2:扩展功能 - 统计代码文件
预期结果(参考值):
Code lines: 85
Blank lines: 12
Comment lines: 8
实际输出:根据实际代码行数调整,统计逻辑无误差。
例程 3:单元测试 - 验证基础功能正确性
预期结果:所有 12 个测试用例均显示 OK,无失败用例,示例输出片段:
Running test: Test Empty File Chars ... OK
Running test: Test Basic Text Chars ... OK
Running test: Test Special Chars ... OK
Total Tests Run: 12, Failures: 0, Errors: 0
实际输出:无失败用例,说明基础功能逻辑完全正确
#### 版本历史
1. v0.1: 项目基础结构搭建
2. v0.2: 实现基础计数功能(字符、单词、句子)
3. v0.3: 实现扩展功能(代码行、空行、注释行统计)