`
wooce
  • 浏览: 184738 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

对std::string如何去除前后的空格

    博客分类:
  • C++
 
阅读更多
同事原先找了个:

std::string trim(string& str)
{
string::size_type pos = str.find_last_not_of(' ');
if(pos != string::npos)
{
str.erase(pos + 1);
pos = str.find_first_not_of(' ');
if(pos != string::npos) str.erase(0, pos);
}
else
str.erase(str.begin(), str.end());
return str;
}
不过还有更精巧的实现,我找到如下的:

// trim from start
static inline std::string &ltrim(std::string &s) {
        s.erase(s.begin(), std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun<int, int>(std::isspace))));
        return s;
}

// trim from end
static inline std::string &rtrim(std::string &s) {
        s.erase(std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun<int, int>(std::isspace))).base(), s.end());
        return s;
}

static inline std::string &trim(std::string &s) {
        return ltrim(rtrim(s));
}
2
6
分享到:
评论

相关推荐

    c++ String去除头尾空格的方法

    本文实例讲述了c++ String去除头尾空格的方法,分享给大家供大家参考。具体实现方法如下: 实现该功能可使用string的find_first_not_of,和find_last_not_of方法,具体实现带如下: 代码如下:#include #include ...

    string 去掉空格

    通过以上示例可以看出,在C++中使用`std::string`类的成员函数可以很方便地实现字符串的空格去除操作。这种方法不仅简洁高效,而且易于理解和维护。此外,结合实际应用场景,可以进一步扩展这些基本功能,实现更复杂...

    C++读写ini配置文件

    - `std::string getSection(const std::string& section, const std::string& key)`:获取指定节下的键值对,若不存在则返回空字符串。 4. **异常处理**: - 在读写过程中,应处理可能出现的文件未找到、权限不足...

    右对齐程序c代码程序代码有关显示时的对齐问题

    在C编程语言中,"右...通过对“对齐.cpp”文件的学习,你可以深入理解C语言或C++中的格式化输出,以及如何通过`printf`或`std::cout`实现字符串的右对齐。这将有助于你在编写涉及输出格式控制的程序时更加得心应手。

    C++_C++_读取txt文档_txt内容读取_按空格分隔_按逗号分隔_

    4. **按逗号分隔**:对于逗号分隔的数据,我们可以使用std::getline()结合不同的分隔符,或者使用std::stringstream和std::stringstream的成员函数&gt;&gt;。例如: ```cpp std::istringstream commaIss(line); std::...

    C++ string 用法详解 - BYVoid1

    在给定的标题和描述中,我们主要讨论了如何使用`std::string`以及相关的C++标准库函数来处理文本数据,特别是对一个包含用户名和电话号码的文件进行排序和去重。 1. **文件I/O**: - 使用`std::ifstream`从文件中...

    CPP.rar_cpp删除空格

    std::string str = "有空格的字符串"; for (size_t i = 0; i (); ) { if (str[i] == ' ') { str.erase(i, 1); } else { ++i; } } ``` 2. **使用`std::replace`函数**: `std::replace`函数可以替换字符串...

    c++字符串与数字如何相互转换详细教程.zip

    `std::stoi()`会跳过前导空格,并且可以从第一个非空字符开始转换。如果遇到非数字字符,或者数字超出了整数范围,它会抛出`std::invalid_argument`或`std::out_of_range`异常。 2. `std::stol()`, `std::stoul()`,...

    C++_String

    `std::unique` 结合 `std::sort` 可以去除重复字符。 **示例代码**: ```cpp std::string s = "abacabadabacaba"; std::sort(s.begin(), s.end()); s.erase(std::unique(s.begin(), s.end()), s.end()); ``` **...

    C++中用substr()函数消除前后空格的解决方法详解.docx

    虽然`substr()`函数是处理字符串的一个强大工具,但它本身并不支持直接去除前后空格的功能。本文将详细介绍如何结合其他C++库函数和方法,如`ltrim()`和`rtrim()`,来有效地去除字符串中的前后空格。 #### 二、基本...

    Reads-a-string.zip_vc++ 字符串_提出string字符

    另外,`std::cin`也可以配合提取运算符`&gt;&gt;`读取字符串,但这种方式会跳过空格和制表符,所以通常不适用于读取一整行。 除了I/O操作,`std::string`类还提供了许多其他有用的函数。例如,`size()`用于获取字符串长度...

    每天学点C++(C++实例教程:教程+源码)01string容器.zip

    在C++编程语言中,`std::string`是C++标准库中用于处理文本字符串的容器,它在 `&lt;string&gt;` 头文件中定义。`std::string` 类型提供了丰富的功能,使得处理字符串变得非常方便。这个压缩包“每天学点C++(C++实例教程...

    VC中关于字符查找及分割

    一个常用的方法是使用`std::getline`配合`std::stringstream`来分割由特定分隔符(如逗号、空格等)分隔的字符串。例如: ```cpp std::string line; while (std::getline(inputStream, line)) { std::stringstream...

    C++分离字符串

    当找不到空格时,`find`会返回`std::string::npos`,此时`line`剩下的部分就是最后一个`token`。 然而,如果我们要处理的分隔符不止一种,或者需要更复杂的逻辑,比如保留分隔符,那么可以自定义一个函数。`spilt....

    ini文件解析

    - 处理节:遇到节名时,创建一个新的结构(如`std::map&lt;std::string, std::map&lt;std::string, std::string&gt;&gt;`)来保存该节的键值对。 - 处理键值对:在对应的节中添加键值对,注意处理特殊字符和空格。 - 关闭文件...

    字符串和数字转换 C++ vs2008

    2. **`std::stringstream`**: 使用`std::stringstream`,我们可以将任何类型的数值写入流,然后将其作为字符串读取。 ```cpp int num = 123; std::stringstream ss; ss ; std::string str; ss &gt;&gt; str; ``` 3...

    C++ 读取txt数据(带空格数据)测试数据

    如果数据格式固定,比如每个字段之间都有空格分隔,可以考虑使用`std::istringstream`和`std::getline()`配合读取: ```cpp int field1, field2, field3; std::getline(ss, token, ' '); // 读取第一个字段,假设它...

    字符串的连接 c++

    4. **使用`std::stringstream`**:另一种高级方法是使用`std::stringstream`,它可以像处理流一样处理字符串。 ```cpp #include #include int main() { std::stringstream ss; ss ; std::string result = ss....

    VC++删除字符串之间的内存空格

    要删除字符串中的空格,我们可以使用`std::string`的`erase`函数。`erase`函数允许我们删除指定位置或范围内的字符。对于连续的空格,我们需要遍历整个字符串,检查每个字符是否为空格,如果是,则将其删除。 以下...

    c++ STL string学习资料

    总的来说,`std::string`是C++中强大且易用的字符串处理工具,掌握其用法和特性对提升编程效率有很大帮助。通过深入学习提供的资料,你将能够更好地理解和运用`std::string`,处理各种复杂的字符串问题。

Global site tag (gtag.js) - Google Analytics