【今日/总数】文章:0/2773 用户:0/10774 书籍:0/200
回顾2016,喜迎2017,以“回顾我与C++技术网的2016,展望C++技术网的2017”为主题,发表文章,将有机会赢得2个月的会员或现金红包。

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

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

作者:codexia  发表时间:2016/10/14 17:10:25  阅读:569
[摘要]函数可以对开头、结尾以及开头和结尾的字符进行截断。可以指定被去除的两端的字符,可以是任何字符,而不只是空白字符,在使用时自己填写。
文章来源: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++语言 -> C++的string截断两端的空格实现

返回顶部

关于我们 QQ群 广告服务 增值服务 捐款资助 版权声明 RSS订阅 站点地图 百度网站地图 意见反馈
鄂ICP备14001349号-2, Copyright © 2014-2017, CJJJS.COM/CJJJS.CN, All Rights Reserved

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