当前位置:编程语言->C++语言->C++的string截断两端的空格实现

原创版权标志C++的string截断两端的空格实现

作者:codexia  发表时间:2016/10/14 17:10:25  阅读:
[摘要] 函数可以对开头、结尾以及开头和结尾的字符进行截断。可以指定被去除的两端的字符,可以是任何字符,而不只是空白字符,在使用时自己填写。
文章来源:C++技术网原创文章版权所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。
    这是一个经常需要的小功能,然而string本身并没有提供,所以经常需要自己写。虽然代码量不大,但是重复的写,还是挺麻烦的。

    所以,就仔细写好,严格测试,然后记录下来,以后需要的时候再直接复制到项目中使用。代码使用效果图:

C++的string截断两端的空格实现

    以下是C++的string截断两端的空格实现代码:
string trim(string str,char ch)
{
 int s = str.find_first_not_of(ch);
 int e = str.find_last_not_of(ch);
 if (s==-1 && e==-1)return str;
 if (s==-1)
 {
 //结尾空格
 str = str.substr(0,e+1);
 }
 if (e==-1)
 {
 //开头空格
 str = str.substr(s,str.length());
 }
 if (s!=-1 && e!=-1)
 {
 str = str.substr(s,e-s+1);
 }
 return str;
}


    测试使用代码:
#include <iostream>
using namespace std;
string trim(string str,char ch)
{
 int s = str.find_first_not_of(ch);
 int e = str.find_last_not_of(ch);
 if (s==-1 && e==-1)return str;
 if (s==-1)
 {
 //结尾空格
 str = str.substr(0,e+1);
 }
 if (e==-1)
 {
 //开头空格
 str = str.substr(s,str.length());
 }
 if (s!=-1 && e!=-1)
 {
 str = str.substr(s,e-s+1);
 }
 return str;
}
void main()
{
 string str=" 这是一个字符串[C++技术网www.cjjjs.com] ";
 str = trim(str,' ');
 cout<<str.c_str()<<"追加";
 int i;
 cin>>i;
}

    trim函数说明:
1.第一个参数为被处理字符串,处理完后的字符串由返回值返回,被处理字符串本身不被改变。
2.第二个参数可以指定被去除的两端的字符,可以是任何字符,而不只是空白字符,在使用时自己填写。
3.函数可以对开头、结尾以及开头和结尾的字符进行截断。
文章来源:C++技术网原创文章版权所有,会员文章禁止转载。非会员文章转载做好本文超链接即表示授权转载。通过文章下面的分享按钮可以自由分享所有文章。


返回顶部

在线提问
问题标题:
问题描述:(简陋的描述会导致问题被最后回答、没有针对性回答甚至无法解答。请确保问题描述的足够清楚。)

C++技术网群幕群聊

弹幕