首页 > 其他 > 详细

删除String中的空格

时间:2014-09-28 01:18:21      阅读:216      评论:0      收藏:0      [点我收藏+]

三种删除String中空格的方法。可用根据需要自由进行选择使用。

1、C风格

#include "stdafx.h"

void RemoveStringSpaces(char* pStr);

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

void RemoveStringSpaces(char* pStr)
{
    int i = 0;                             // ‘Copy to‘ index to string
    int j = 0;                             // ‘Copy from‘ index to string

    while ((*(pStr + i) = *(pStr + j++)) != \0)  // Loop while character
        // copied is not \0
        if (*(pStr + i) !=  )                    // Increment i as long as
            i++;                                  // character is not a space
    return;
}

 

2、STL 算法

  remove与remove_if

#include "stdafx.h"
#include <algorithm>
#include <functional>
#include <string>
using namespace std;

void RemoveStringSpaces(string& str);

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

void RemoveStringSpaces(string& str)
{
    str.erase(remove(str.begin(), str.end(),  ), str.end());
    //str.erase(remove_if(str.begin(), str.end(), bind2nd(equal_to<char>(), ‘ ‘)), str.end()); 效果与remove一样
}

 

3、ctype

#include "stdafx.h"
#include <string>
#include <cctype>
using namespace std;

void RemoveStringSpaces(string& str);

int _tmain(int argc, _TCHAR* argv[])
{
    return 0;
}

void RemoveStringSpaces(string& str)
{
    for (size_t index = 0; index != str.size();)
    {
        if (isspace(str[index])) //如果str[index]为空白,则为Ture
            str.erase(index, 1);
        else
            ++index;
    }
}

 

PS:使用过程中注意添加正确的头文件。

删除String中的空格

原文:http://www.cnblogs.com/leadtheway/p/3997546.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!