c++中不存在“系统保留字”这一标准概念,实际需处理的是文件名非法字符(如:"/|?*及ascii控制符)和windows设备名(如con、prn等),应先过滤非法字符再屏蔽设备名。

什么是“系统保留字”?先明确问题边界
C++ 标准库本身不定义“系统保留字”这个概念——这不是语言层面的术语。你实际想处理的,通常是以下之一:
- 操作系统路径中的特殊字符(如 Windows 的
、:、*、?、"、、<code>>、|) - 文件系统禁止用作文件名的字符(例如 NTFS 或 FAT32 的保留名
CON、PRN、AUX等) - C++ 关键字(如
int、class、return),但它们出现在字符串里时只是普通文本,删不删取决于业务逻辑,不是“必须删”
如果你的目标是生成安全的文件名或路径片段,重点应放在过滤非法字符 + 屏蔽设备名,而不是泛泛而谈“系统保留字”。
删除非法文件名字符:用 std::remove_if + 谓词
Windows 对文件名有明确禁止字符列表(ASCII 控制字符 + : " / | ? *),Linux/macOS 限制少得多(仅禁止 / 和空字符

