跳到主要内容
CodeAtlas
C · 语法与内存阶段 15 项必做

手写字符串处理库(strlen/strcpy/strstr)

理解指针,不再害怕段错误

难度
建议投入 24–42 小时· 6 条需求
验收权重
能手写链表增删改查;能解释指针与数组的区别40%
核心功能可独立跑通,无阻断性 bug25%
关键路径有测试或可复现的验收脚本15%
README 写清运行方式、架构与踩坑10%
能在 5 分钟内讲清设计与取舍10%

总分 100。低于 60 分说明这个阶段还没过,回去补知识点,不丢人。

项目背景

这是「C」路径第 1 阶段(阶段一 · 语法与内存)的验收项目。本阶段目标是:理解指针,不再害怕段错误。项目不是练习题的堆砌,而是把这一阶段的知识点压缩成一个能演示、能讲清楚取舍的成品。

MVP 目标
  • 理解指针,不再害怕段错误
  • 做出可运行、可演示的「手写字符串处理库」
  • 把 基本类型与运算符、数组与字符串、指针与地址运算 真正用进项目,而不是停在笔记里

功能需求清单

5 项必做 · 1 项建议
  1. 1
    strlen必做

    围绕「strlen」做出可演示的最小实现,覆盖正常流程与至少一条异常流程。

  2. 2
    strcpy必做

    围绕「strcpy」做出可演示的最小实现,覆盖正常流程与至少一条异常流程。

  3. 3
    strstr必做

    围绕「strstr」做出可演示的最小实现,覆盖正常流程与至少一条异常流程。

  4. 4
    可运行与可复现必做

    提供一条命令或脚本,在干净环境(或 Docker)里能跑起来;把依赖版本写清楚。

  5. 5
    异常与边界必做

    至少处理 3 类异常或边界输入(空数据、超长输入、网络失败、并发冲突等),并说明处理策略。

  6. 6
    测试或验收脚本建议

    对核心路径写至少 3 个自动化测试,或提供可重复执行的验收脚本(含预期输出)。

技术约束

基本类型与运算符数组与字符串指针与地址运算结构体与枚举函数与递归

交付物

  • Git 仓库(含分阶段提交记录,不是最后一次性上传)
  • README:项目简介、架构/流程图、运行方式、已知限制
  • 演示材料:截图,或 1–2 分钟录屏
  • 复盘:做错的 3 个决定与改进方案

加分项

  • 在「手写字符串处理库」基础上加一层持久化或缓存
  • 补 CI(lint + test)与一键部署脚本
  • 做一次性能或质量对比,用数据说明改进

最容易翻车的地方

  • 把 C 当成「小一号的 C++」 —— 它是理解内存与操作系统的入口,不是过渡语言
  • 指针看不懂就先跳过 —— 后面的内存模型、系统调用全都会塌
  • 只做到「能跑」,没有异常处理与边界用例
  • README 只写一句「装依赖后运行」,别人跑不起来

做完之后,简历怎么写

「手写字符串处理库」:独立完成 strlen、strcpy、strstr,使用 基本类型与运算符、数组与字符串、指针与地址运算;通过「能手写链表增删改查」验收。

写「做了什么 + 用了什么 + 结果如何」,不要写「参与了 XX 系统」。