C++ 如何去掉字符串中所有的多余分隔符

在 C++ 里清理字符串中的连续空格、逗号或下划线,关键不在“替换某个字符”,而在“压缩一段分隔符”。这篇文章把 `std::regex_replace`、双指针原地处理和 `std::stringstream` 拆分重组放到同一张图里比较,并说明为什么 `replace_all` 一类第三方接口并不适合这个需求。

C++ 如何去掉字符串中所有的多余分隔符

Lua 源码编译后如何接入 C++ 项目:从生成 .lib 到跑通脚本

这篇内容梳理了在 Windows 下从 Lua 源码编译静态库、再接入 Visual Studio C++ 控制台项目的基本流程。重点不是展开复杂配置,而是把关键节点串起来:源码准备、生成 `.lib`、链接设置,以及通过 `Runlua.cpp` 启动脚本后应看到的结果,方便读者快速判断自己是否走对了。

Lua 源码编译后如何接入 C++ 项目:从生成 .lib 到跑通脚本

C++ 如何用 string::erase 正确删除指定子串

`std::string::erase` 不能直接按“子串内容”删除,实际用法一定是先 `find` 定位,再用 `erase(pos, len)` 擦除。本文把删一个、删全部、处理重叠匹配和 `replace` 替代方案分开讲清,顺手避开 `npos`、单参数 `erase` 和索引更新这几个最常见的坑。 很多 C++ 初学者会把 `string::erase` 当成“按内容删除子串”的现成工具,结果不是编译不过,就是在 `npos`、单参数重载和循环删除上踩坑。

C++ 如何用 string::erase 正确删除指定子串

C++ 删除字符串中特定路径分隔符的正确写法

在 C++ 里删除字符串中的路径分隔符,写法取决于标准版本:C++20 可以直接用 `std::erase`,更早版本则应使用经典的 erase-remove 惯用法。本文把两种方案、反斜杠转义细节,以及 `find + erase` 循环的常见坑放到同一条判断线上,方便你按项目环境快速选型。

C++ 删除字符串中特定路径分隔符的正确写法

C++ 如何去掉字符串中所有的特定分隔符

在 C++ 里删除字符串分隔符,关键不是“怎么删”,而是先分清要删的是单个字符、多个字符,还是其实只想做切分。本文按 C++20、旧标准兼容和性能场景拆开说明,保留可直接使用的代码与边界判断。

C++ 如何去掉字符串中所有的特定分隔符

C++ 多线程里,信号量和互斥量到底差在哪

在 C++ 多线程里,`std::mutex` 和 `std::counting_semaphore` 解决的并不是同一类问题。前者负责保护临界区,强调线程所有权;后者负责资源数量协调,没有持有者概念。把两者混着用,往往会把简单的同步问题拖成数据竞争或难查的并发故障。

C++ 多线程里,信号量和互斥量到底差在哪

gdb 调试 C++ 多线程时,如何跳过指定函数调用

在 GDB 调试 C++ 多线程程序时,很多人会以为 `next` 可以像单线程那样跳过函数调用,但 `std::thread` 启动线程后,子线程会立即并发运行,这条路行不通。本文把“跳过线程函数”拆成断点控制、函数退出和线程调度三件事,说明哪些做法有效,哪些只是表面绕开。

gdb 调试 C++ 多线程时,如何跳过指定函数调用

Linux 中如何使用 C++ 标准库

在 Linux 上使用 C++ 标准库,核心并不在“安装”,而在于正确包含头文件、按命名空间调用接口,再用 g++ 完成编译运行。本文用最基础的输入输出示例串起完整流程,同时补出常见标准库头文件的对应关系,方便刚开始写 C++ 的读者快速判断该引什么、怎么编译、运行后会得到什么结果。

Linux 中如何使用 C++ 标准库