`
wooce
  • 浏览: 180748 次
  • 性别: 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 ...

    定长字符串模板类

    该模板类用法和std::string一样,可以参考它的文档.另外为了兼容std::basic_string&lt;;&gt;;, 还提供了和std::string搭配的一些额外功能,比如函数的字符串参数都支持 std::basic_string.可以与std::basic_string...

    华南理工大学助教期末一键整理实验作业(for ubuntu)+源代码+文档说明

    std::vector&lt; std::pair&lt;string, string&gt; &gt; list; ``` - cd /build - cmake .. - make - ./cmakeTest - 每次执行过后需要更改src目录和newName的值以便将多次实验分次放入每个学生对应的文件夹中,当然也可以一次...

    CipherFinder

    要阅读它,您需要输入一个关键字(可以有很大的不同,但长度不能超过五个字母),并找到一个由多个单词组成的序列,以使第一个单词的第一个字母,第二个字母-第二个字母,第三-第三,依此类推将... std::string key

    C++实验报告(3).doc

    图 1 symmetry.in 图 2 symmetry.out 【程序代码】 #include&lt;iostream&gt; #include&lt;string&gt; using namespace std; bool isMatch(string s); int main() { string s; while (1) { cin &gt;&gt; s; if (s.compare("000000") =...

    simple_game

    缺点需要为每种类型实现序列化器(除了std :: string,int,float等类型,因为标准库为您实现了这些序列化器)参数解析器提供了一种从文本中提取含义的简单方法分割单词以允许文本中具有额外的空格(例如“ hi there...

    C++中 string 中的常用方法使用心得

    1. size() 和 length() 函数 : 他们返回字符串的真实长度,且不会因为空格而截断,这两个方法完全等价,使用及输出如下: #include #include&lt;string&gt; using namespace std; int main(void) { string s = dasddasd;...

    浅谈C++的几种从键盘输入方式

    string name; std::cin&gt;&gt;name; std::cout&lt;&lt;name; 当你输入Michael Jackon时,通运行程序你会发现name只存储了Michael,这是为什么呢? 原来是 cin使用空白(空格,制表符和换行符)来确定字符串的结束位置 在...

    fx-gltf:C ++ 14C ++ 17仅限标头的库,用于简单,高效和强大的序列化glTF 2.0的反序列化

    在内部包含std :: string_view的使用以提高性能 使用现代,安全的语法和方法来实现 小型,仅标头的库 少于2000行的高级,直接,慷慨的代码,包括空格/注释 C ++ 20模块准备就绪(不会泄漏预处理程序定义/宏超出其...

    Tinyxml 源代码(VC6 & VS2005)

    如果使用STL,TinyXML会使用std::string类,而且完全支持std::istream,std::ostream,operator和operator&gt;&gt;。许多API方法都有 ‘const char*’和’const std::string&’两个版本。 如果被编译成不使用STL,则任何...

    将数据写入txt中

    #include&lt;string&gt; #include using namespace std; int N;//输入数据的组数 int array[20][3]; int main() { int i=0,j=0; cout请输入病人的脉搏、体温、血压的组数N的值(不大于20):"; cout; cin&gt;&gt;N; ...

    Dev-CPP:轻量级CC ++ IDE

    例如,可以正确显示std :: string的类型提示。 键入时自动提示代码。 在编辑器选项对话框中,用户可以选择使用Alt + /代替Ctrl + Space来调用代码完成动作。 (在中文系统中,Ctrl-空格键用于切换输入法)。 并且...

    用于运行子进程的 Rust 库

    同时,Duct 可帮助您编写正确、可移植的代码:空格从不重要,默认情况下会报告来自子进程的错误,并以 Right Way:trade_mark: 为您处理各种问题、错误和平台不一致。文档箱GitHub 仓库相同的库,在 Python 中例子...

    c++实现逐行读取配置文件写入内存的示例

    不解析配置内容,只读取文件内容,剪去注释和首尾空格后写入缓存: vector&lt;string&gt; 中。供其他方法使用。代码是在做一个MFC小工具时写的。 ReadProtocol.h 代码如下:/*** 从文件中 读取 protocol 的内容 写入缓存* 供...

    数据结构仓库管理系统.doc

    仓库管理系统 1. 题目要求 设计一个仓库管理系统,... #include "string.h" #include "stdlib.h" #include "windows.h" using namespace std; typedef struct { //仓库管理结点类型 char NO[10]; //商品编号 char nam

    最新名企标准通用C++面试题,

    缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。 优点:循环的效率高 缺点:程序不简洁 4、有关内存的思考题 void GetMemory(char *p) { p = ...

    C++ 面试题翻译电话号码实例代码

    有空格,非法字符,两个Double相连,Double位于最后一个单词 都错误。 #include #include &lt;string&gt; using namespace std; void process(string str) { //各字符串的下标即为其对应的阿拉伯数字 char *ch[]={...

    高质量C++编程指南 chm

    2.3 代码行内的空格... 17 2.4 对齐... 18 2.5 长行拆分... 19 2.6 修饰符的位置... 19 2.7 注释... 20 2.8 类的版式... 21 第3章 命名规则... 22 3.1 共性规则... 22 3.2 简单的Windows应用程序...

    C++实现判断字符串是否回文实例解析

    本文实例解析了C++判断字符串是否回文的实现过程,通过数据结构中的相关例子,回文判断中采用过滤空格字符、有效字符依次入栈等方法实现该功能。 具体实例代码如下: #include using namespace std; #define Max_...

    数据结构—huffmancode

    using namespace std; #include #include"stdlib.h" #include"string.h" typedef struct { unsigned int weight; unsigned int parent,lchild,rchild; }HTNode,*HuffmanTree; typedef char * * HuffmanCode; void...

Global site tag (gtag.js) - Google Analytics