在C++中,想从一个字符串中移除特定的字符,可以使用 std::string 的成员函数操作字符串,或利用算法库中的 std::remove 或 std::remove_if 函数,欢迎大家补充说明!!!
选择哪一种取决于你的具体应用场景和性能要求。通常,使用 std::remove 或 std::remove_if 与 erase 结合会是一种高效且简洁的方式。
使用 std::string 的 erase 和 find 方法
循环查找并擦除特定字符,逐个字符地搜索并移除字符
(图片来源网络,侵删)
#include #include int main() { std::string str = "Hello, World!"; char char_to_remove = 'l'; size_t pos; while ((pos = str.find(char_to_remove)) != std::string::npos) { str.erase(pos, 1); } std::cout std::string str = "Hello, World!"; char char_to_remove = 'l'; str.erase(std::remove(str.begin(), str.end(), char_to_remove), str.end()); std::cout std::string str = "Hello, World!\n"; // 移除所有空格字符 str.erase(std::remove_if(str.begin(), str.end(), ::isspace), str.end()); std::cout std::string str = "Bananas are amazing!"; char char_to_remove = 'a'; // std::remove_if 重新排列字符串,移除指定的字符,返回新的逻辑结尾 auto new_end = std::remove_if(str.begin(), str.end(), [char_to_remove](char c) { return c == char_to_remove; }); // 调用 erase 移除从新逻辑结尾到实际结尾的所有字符 str.erase(new_end, str.end()); std::cout
文章版权声明:除非注明,否则均为VPS857原创文章,转载或复制请以超链接形式并注明出处。
还没有评论,来说两句吧...