使用std实现string的TrimLeft与TrimRight功能
使用过MFC的人都知道,MFC的字符串CString有些函数比较好用的,如: TrimLeft(), TrimRight()为CString所包含有的子函数,可以去掉左右空格符,但std::string却没有。
以下我们使用std的标准函数来实现此功能:
#include <iostream>
#include <algorithm>
#include <string>
using namespace std;
template<typename _Tp>
inline bool is_not_space (_Tp a) {
return !std::isspace(a);
}
void trim_left(string& pstr)
{
string l_strtemp;
std::string::iterator pfind = std::find_if(pstr.begin(),pstr.end(),is_not_space<std::string::value_type>);
if(pfind!=pstr.end())
{
l_strtemp.assign(pfind,pstr.end());
pstr = l_strtemp;
}
}
void trim_right(string& pstr)
{
string l_strtemp;
std::string::reverse_iterator pfind = std::find_if(pstr.rbegin(),pstr.rend(),is_not_space<std::string::value_type>);
if(pfind!=pstr.rend())
{
std::string::iterator pend(pfind.base());
l_strtemp.assign(pstr.begin(),pend);
pstr = l_strtemp;
}
}
int main()
{
std::string l_str(" \n test \n ");
trim_left(l_str);
cout<<" test string:"<<l_str<<"#"<<endl;
trim_right(l_str);
cout<<" test string:"<<l_str<<"#"<<endl;
return 0;
}
使用std实现string的TrimLeft与TrimRight功能相关推荐
- no match for call to ‘(std::__cxx11::string {aka std::__cxx11::basic_string
问题: t->package().ship_id(sqlRow[1]); 其中 ship_id为 结构体package中的string类型. 如下: typedef struct Packag ...
- CString中 format、trimLeft和trimright、trim 和FindOneOf用法
1.format 可以帮助各种类型转换成CString. a. int 转 CString CString str; int number = 4; str.Format(_T("%d&qu ...
- CString字符串查找和截取与去空格(Find,FindOneOf,ReverseFind,Left,Mid,Right,substr,TrimLeft和TrimRight)
一.CString之Find().FindOneOf().ReverseFind(). 此三个函数返回值均为整数int. 1.Find() 该函数从最左侧0位置开始索引,查找到第一个出现该字符的位置, ...
- 用java自己实现String类的trim()方法功能
用java自己实现String类的trim()方法功能 我们都知道String类中的trim()方法的功能在于:"返回字符串的副本,其中该副本忽略前导空白和尾部空白."(这是api ...
- 【Dart 教程系列第 40 篇】Dart 之 trim,trimLeft,trimRight 字符串去除空格
这是[Dart 教程系列第 40 篇],如果觉得有用的话,欢迎关注专栏. trim 源码如下所示 String trim(); 语法 去除字符串中左右两边的空格,注意不是去掉字符串中所有的空格.如果两 ...
- TrimLeft()和TrimRight()
strming.TrimLeft(); //将字符串最前面的空格修整掉.当在没有参数的情况下调用时,TrimLeft删除换行符,空格和tab字符. strming.TrimRight()://消除从 ...
- Delphi中trim、trimleft以及trimright的用法
trim : 去掉字符串左右两边的空格 trimleft :去掉字符串左边的空格 trimright :去掉字符串右边的空格 Delphi更多交流学习请加QQ: 2609715119 非诚勿扰!
- STD中string的常用方法总结
在程序中常常需要处理字符串,除了以前写的一些关于char的方法的总结外,很多的时候也会用到string来进行字符串处理.下面对它的常用方法做些总结: 1.定义: string &operato ...
- String字符串类的获取功能
StringDemo.java /** String类的获取功能:* int length():获取字符串的长度,其实也就是字符个数* char charAt(int index):获取指定索引处的字 ...
最新文章
- 转: Meshlab简介
- java+jquery实现长轮询案例_网页实时聊天之js和jQuery实现ajax长轮询
- BootStrap--CSS组件
- 视觉里程计02 基于特征匹配的位姿估计
- php100视频解压密码
- 突破百度知道瓶颈,问淘宝引流
- 芯片工程师常用英文黑话
- 学金融会python_大学生金融小白自学Python做量化投资需要注意哪些?
- android 耳机监听权限,android 耳机监听
- 液相色谱仪网络版计算机化再确认,高效液相色谱仪计算机验证部分要点!
- Markdown 插入图片的方法
- 梦想汽车 NFT 系列
- windows版Rsync服务端和客户端cwRsync_4.1.0安装测试
- 可重入锁的理解及公平锁和非公平锁的具体实现
- 最好用的格式转化器File Converter
- Nginx实战应用--对于构建虚拟主机,Socket的作用,你学废了吗?
- HuTool工具包实现Excel文件的上传、下载以及修改文件名称
- 射频识别技术漫谈(3)——能量、调制
- 重磅亲测!ChatGPT是否产生了自我意识?
- 3.JavaScript快速入门