c++ string 去掉前后空格

在 C++ 中,可以使用以下几种方法去掉一个字符串的前后空格:

方法一:使用 std::string 的 erase 和 find_first_not_of 方法

std::string str = "   hello world    ";
str.erase(0, str.find_first_not_of(" "));
str.erase(str.find_last_not_of(" ") + 1);

这个方法首先使用 find_first_not_of 找到第一个不是空格的字符,然后使用 erase 方法删除前面的空格。接着使用 find_last_not_of 方法找到最后一个不是空格的字符,然后使用 erase 方法删除后面的空格。

方法二:使用 std::string 的 substr 和 find_first_not_of 方法

std::string str = "   hello world    ";
str = str.substr(str.find_first_not_of(" "));
str = str.substr(0, str.find_last_not_of(" ") + 1);

这个方法也是找到第一个不是空格的字符和最后一个不是空格的字符,然后使用 substr 方法截取不包含空格的字符串。

方法三:使用 std::regex_replace 方法

#include <regex>
std::string str = "   hello world    ";
str = std::regex_replace(str, std::regex("^\\s+|\\s+$"), "");

这个方法使用正则表达式来匹配字符串中的前后空格,并使用 regex_replace 方法将其替换为空字符串。

以上三种方法都可以有效地去掉一个字符串的前后空格,具体选择哪种方法可以根据个人喜好和实际情况来定。需要注意的是,以上方法均要求 C++11 及以上的版本。

知识限制:C++11及以上版本 回答时间:2023年3月11日

  •