string 类中,如何删除字符串中的空格??????
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
-
- 帖子: 12
- 注册时间: 2008-09-22 16:01
Re: string 类中,如何删除字符串中的空格??????
这个是删除首尾空格的,你可以修改一下。
代码: 全选
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;
}
-
- 帖子: 113
- 注册时间: 2005-03-27 17:11
- 系统: Linux Mint 14 Nadia
- 来自: Seattle, USA
- 联系:
Re: string 类中,如何删除字符串中的空格??????
如果只是首尾空格用trim()就好拉..
- eexpress
- 帖子: 58428
- 注册时间: 2005-08-14 21:55
- 来自: 长沙
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: string 类中,如何删除字符串中的空格??????
mesocool,
大哥你说的是吗,我在问c++ string类
不是在问Cstring,你地明白的干活?
大哥你说的是吗,我在问c++ string类
不是在问Cstring,你地明白的干活?
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: string 类中,如何删除字符串中的空格??????
xiujie,
谢谢
谢谢
-
- 帖子: 113
- 注册时间: 2005-03-27 17:11
- 系统: Linux Mint 14 Nadia
- 来自: Seattle, USA
- 联系:
Re: string 类中,如何删除字符串中的空格??????
你标题里又没注明你问的是c++..weihua2008 写了:mesocool,
大哥你说的是吗,我在问c++ string类
不是在问Cstring,你地明白的干活?
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: string 类中,如何删除字符串中的空格??????
,我错了,谢谢你的回复
不好意思
不好意思
- lysting
- 帖子: 41
- 注册时间: 2006-07-13 11:43
- 来自: 深圳
- 联系:
Re: string 类中,如何删除字符串中的空格??????
楼主,可以考虑下 remove_if .
- lysting
- 帖子: 41
- 注册时间: 2006-07-13 11:43
- 来自: 深圳
- 联系:
Re: string 类中,如何删除字符串中的空格??????
楼主,可以考虑下 remove_if .
- kwarph
- 帖子: 51
- 注册时间: 2006-06-19 19:19
- 联系:
Re: string 类中,如何删除字符串中的空格??????
试试看吧,不知道是不是这个意思:
输出应该是:
如果是用boost的regex库,可选的功能就多了。
代码: 全选
#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.
- kwarph
- 帖子: 51
- 注册时间: 2006-06-19 19:19
- 联系:
Re: string 类中,如何删除字符串中的空格??????
单独使用remove_if是不行的,还得eraselysting 写了:楼主,可以考虑下 remove_if .
代码: 全选
#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.
-
- 帖子: 448
- 注册时间: 2008-07-10 15:08
Re: string 类中,如何删除字符串中的空格??????
kwarph,
除了谢谢,只能说谢谢了
除了谢谢,只能说谢谢了