同事原先找了个:
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 <rim(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));
}
分享到:
相关推荐
本文实例讲述了c++ String去除头尾空格的方法,分享给大家供大家参考。具体实现方法如下: 实现该功能可使用string的find_first_not_of,和find_last_not_of方法,具体实现带如下: 代码如下:#include #include ...
该模板类用法和std::string一样,可以参考它的文档.另外为了兼容std::basic_string<;>;, 还提供了和std::string搭配的一些额外功能,比如函数的字符串参数都支持 std::basic_string.可以与std::basic_string...
std::vector< std::pair<string, string> > list; ``` - cd /build - cmake .. - make - ./cmakeTest - 每次执行过后需要更改src目录和newName的值以便将多次实验分次放入每个学生对应的文件夹中,当然也可以一次...
要阅读它,您需要输入一个关键字(可以有很大的不同,但长度不能超过五个字母),并找到一个由多个单词组成的序列,以使第一个单词的第一个字母,第二个字母-第二个字母,第三-第三,依此类推将... std::string key
图 1 symmetry.in 图 2 symmetry.out 【程序代码】 #include<iostream> #include<string> using namespace std; bool isMatch(string s); int main() { string s; while (1) { cin >> s; if (s.compare("000000") =...
缺点需要为每种类型实现序列化器(除了std :: string,int,float等类型,因为标准库为您实现了这些序列化器)参数解析器提供了一种从文本中提取含义的简单方法分割单词以允许文本中具有额外的空格(例如“ hi there...
1. size() 和 length() 函数 : 他们返回字符串的真实长度,且不会因为空格而截断,这两个方法完全等价,使用及输出如下: #include #include<string> using namespace std; int main(void) { string s = dasddasd;...
string name; std::cin>>name; std::cout<<name; 当你输入Michael Jackon时,通运行程序你会发现name只存储了Michael,这是为什么呢? 原来是 cin使用空白(空格,制表符和换行符)来确定字符串的结束位置 在...
在内部包含std :: string_view的使用以提高性能 使用现代,安全的语法和方法来实现 小型,仅标头的库 少于2000行的高级,直接,慷慨的代码,包括空格/注释 C ++ 20模块准备就绪(不会泄漏预处理程序定义/宏超出其...
如果使用STL,TinyXML会使用std::string类,而且完全支持std::istream,std::ostream,operator和operator>>。许多API方法都有 ‘const char*’和’const std::string&’两个版本。 如果被编译成不使用STL,则任何...
#include<string> #include using namespace std; int N;//输入数据的组数 int array[20][3]; int main() { int i=0,j=0; cout请输入病人的脉搏、体温、血压的组数N的值(不大于20):"; cout; cin>>N; ...
例如,可以正确显示std :: string的类型提示。 键入时自动提示代码。 在编辑器选项对话框中,用户可以选择使用Alt + /代替Ctrl + Space来调用代码完成动作。 (在中文系统中,Ctrl-空格键用于切换输入法)。 并且...
同时,Duct 可帮助您编写正确、可移植的代码:空格从不重要,默认情况下会报告来自子进程的错误,并以 Right Way:trade_mark: 为您处理各种问题、错误和平台不一致。文档箱GitHub 仓库相同的库,在 Python 中例子...
不解析配置内容,只读取文件内容,剪去注释和首尾空格后写入缓存: vector<string> 中。供其他方法使用。代码是在做一个MFC小工具时写的。 ReadProtocol.h 代码如下:/*** 从文件中 读取 protocol 的内容 写入缓存* 供...
仓库管理系统 1. 题目要求 设计一个仓库管理系统,... #include "string.h" #include "stdlib.h" #include "windows.h" using namespace std; typedef struct { //仓库管理结点类型 char NO[10]; //商品编号 char nam
缺点:多执行了N-1次逻辑判断,并且打断了循环“流水线”作业,使得编译器不能对循环进行优化处理,降低了效率。 优点:循环的效率高 缺点:程序不简洁 4、有关内存的思考题 void GetMemory(char *p) { p = ...
有空格,非法字符,两个Double相连,Double位于最后一个单词 都错误。 #include #include <string> using namespace std; void process(string str) { //各字符串的下标即为其对应的阿拉伯数字 char *ch[]={...
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++判断字符串是否回文的实现过程,通过数据结构中的相关例子,回文判断中采用过滤空格字符、有效字符依次入栈等方法实现该功能。 具体实例代码如下: #include using namespace std; #define Max_...
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...