标准C++ 实现TrimLeft TrimRight Trim

利用C++从C继承来的字符函数库cctype来实现去除字符串左右两边的空格、制表符、换行符

包含头文件cctype,调用函数isspace

...
#include <cctype>

void TrimLeft(char **chsrc)
{
    for(int i = 0 ; i < strlen((*chsrc));)
    {
        char ch = (*chsrc)[i];
        if(isspace(ch))//如何是返回true
          (*chsrc) += 1;
        else
           break;
    }
}
void TrimRight(char **chsrc)
{
    for(int i = strlen((*chsrc)) - 1 ; i >= 0 ;i = strlen((*chsrc)) - 1)
    {       
        char ch = (*chsrc)[i];
        if(isspace(ch))
            (*chsrc)[i] = 0;
        else
             break;    
    }
}


void Trim(char **chsrc)
{
    TrimLeft(chsrc);
    TrimRight(chsrc);
}
char *chspace = new char[128];
memset(chspace,0,128);
//cin.getline(chspace,128);
sprintf(chspace,"\r\n123 456 \r\n");
//cin >> chspace;
cout << strlen(chspace)<< endl;
cout << "----------Trim-------------"<<endl;
Trim(&chspace);
cout << chspace << "***长度:" << strlen(chspace) << endl;
delete []chsapce;		
system("pause");
return 0;

如果参数是string类型,则利用迭代器删除

  1. using namespace std;  
  2. string trim(string s){  
  3.     if(s.empty())  
  4.         return s;  
  5.     s.erase(0,s.find_first_not_of(" "));  
  6.     s.erase(s.find_last_not_of(" ") + 1);  
  7.     return s;  
  8. }  
  9.   
  10. int main(){  
  11.     string s = " Hello World!! ";  
  12.     cout << s << " size:" << s.size()<<"\n";  
  13.     cout << trim(s) << " size:" << trim(s).size() <<"\n";  
  14.     return 0;  
  15. }  




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值