当前时区为 UTC + 8 小时



发表新帖 回复这个主题  [ 13 篇帖子 ] 
作者 内容
1 楼 
 文章标题 : string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-17 11:37 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
如题


页首
 用户资料  
 
2 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-18 16:26 

注册: 2008-09-22 16:01
帖子: 12
送出感谢: 0 次
接收感谢: 0 次
这个是删除首尾空格的,你可以修改一下。
代码:
string Trim(const string str){
  string s("");
  int i=0;
  int y=0;
  for(i=0;i<str.size();i++){
    if(str.at(i) != ' ')break;
  }
  for(y=str.size()-1;y>=0;y--){
    if(str.at(y) != ' ')break;
  }
  for(;i<=y;i++)
    s.append(1,str.at(i));
  return s;
}


页首
 用户资料  
 
3 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-20 1:52 

注册: 2005-03-27 17:11
帖子: 113
地址: Seattle, USA
系统: Linux Mint 14 Nadia
送出感谢: 0 次
接收感谢: 0 次
如果只是首尾空格用trim()就好拉..


_________________

http://guanyu.info
simplicity is the key to brilliance


页首
 用户资料  
 
4 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-20 8:32 
头像

注册: 2005-08-14 21:55
帖子: 58428
地址: 长沙
送出感谢: 4
接收感谢: 272
其实用到正则库,应该很少需要自己这样修改字符串了的。


_________________
● 鸣学


页首
 用户资料  
 
5 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-20 12:26 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
mesocool,
大哥你说的是吗,我在问c++ string类
不是在问Cstring,你地明白的干活?


页首
 用户资料  
 
6 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-20 12:27 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
xiujie,
谢谢


页首
 用户资料  
 
7 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-20 13:37 

注册: 2005-03-27 17:11
帖子: 113
地址: Seattle, USA
系统: Linux Mint 14 Nadia
送出感谢: 0 次
接收感谢: 0 次
weihua2008 写道:
mesocool,
大哥你说的是吗,我在问c++ string类
不是在问Cstring,你地明白的干活?


你标题里又没注明你问的是c++.. :em20


页首
 用户资料  
 
8 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-20 14:29 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
,我错了,谢谢你的回复
不好意思


页首
 用户资料  
 
9 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-30 21:40 
头像

注册: 2006-07-13 11:43
帖子: 41
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
楼主,可以考虑下 remove_if .


页首
 用户资料  
 
10 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-30 21:40 
头像

注册: 2006-07-13 11:43
帖子: 41
地址: 深圳
送出感谢: 0 次
接收感谢: 0 次
楼主,可以考虑下 remove_if .


页首
 用户资料  
 
11 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-30 22:23 
头像

注册: 2006-06-19 19:19
帖子: 51
送出感谢: 0 次
接收感谢: 0 次
试试看吧,不知道是不是这个意思:
代码:
#include <iostream>
using namespace std;

// 删除首尾空白字符(包括空格,制表符等)
void trim(string& s) {
    if (s.length() < 1) {
        return;
    }

    while (isspace(s[0])) {
        s.erase(0, 1);
    }

    while (isspace(s[s.length() - 1])) {
        s.erase(s.length() - 1, 1);
    }
}

// 删除任意位置的空白字符。
void eatWhite(string& s) {
    if (s.length() < 1) {
        return;
    }

    for (size_t i = 0; i < s.length(); ++i) {
        if (isspace(s[i])) {
            s.erase(i, 1);
        }
    }
}

// Test case
int main() {
    string s("Ubuntu GNU/Linux 9.04 released.");
    cout << "Old: " << s << endl;
    eatWhite(s);
    cout << "New: " << s << endl;
}


输出应该是:
代码:
Old: Ubuntu GNU/Linux 9.04 released.
New: UbuntuGNU/Linux9.04released.


如果是用boost的regex库,可选的功能就多了。


_________________
Tiger Cheng
昆山轩辕IT培训中心
C++培训讲师
邮件:kwarph@gmail.com
主页:http://www.xuanyuan-soft.cn


页首
 用户资料  
 
12 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-04-30 22:46 
头像

注册: 2006-06-19 19:19
帖子: 51
送出感谢: 0 次
接收感谢: 0 次
lysting 写道:
楼主,可以考虑下 remove_if .


单独使用remove_if是不行的,还得erase

代码:
#include <iostream>
#include <algorithm>
using namespace std;

// Test case
int main() {
    string s("Ubuntu GNU/Linux 9.04 released.");
    cout << "Old: " << s << endl;
    s.erase(remove_if(s.begin(), s.end(), bind2nd(equal_to<char>(),  ' ')), s.end());
    cout << "New: " << s << endl;
}


输出应如下:
代码:
Old: Ubuntu GNU/Linux 9.04 released.
New: UbuntuGNU/Linux9.04released.


但愿对你有点用处。


_________________
Tiger Cheng
昆山轩辕IT培训中心
C++培训讲师
邮件:kwarph@gmail.com
主页:http://www.xuanyuan-soft.cn


页首
 用户资料  
 
13 楼 
 文章标题 : Re: string 类中,如何删除字符串中的空格??????
帖子发表于 : 2009-05-07 14:03 

注册: 2008-07-10 15:08
帖子: 448
送出感谢: 0 次
接收感谢: 0 次
kwarph,
除了谢谢,只能说谢谢了


页首
 用户资料  
 
显示帖子 :  排序  
发表新帖 回复这个主题  [ 13 篇帖子 ] 

当前时区为 UTC + 8 小时


在线用户

正在浏览此版面的用户:没有注册用户 和 2 位游客


不能 在这个版面发表主题
不能 在这个版面回复主题
不能 在这个版面编辑帖子
不能 在这个版面删除帖子
不能 在这个版面提交附件

前往 :  
本站点为公益性站点,用于推广开源自由软件,由 DiaHosting VPSBudgetVM VPS 提供服务。
我们认为:软件应可免费取得,软件工具在各种语言环境下皆可使用,且不会有任何功能上的差异;
人们应有定制和修改软件的自由,且方式不受限制,只要他们自认为合适。

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
简体中文语系由 王笑宇 翻译