⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stringtrim.h

📁 在C++标准库<string>中
💻 H
字号:
/**
* @file StringTrim.h
* @brief 提供了跨平台的去掉字符串首尾空格的方法
* @author Hao Liming Wang Jiantao
* @date 2008-11-6 12:38:32
* @Version 0.1
* <pre><b>copyright: CASCO</b></pre>
* <pre><b>email: </b>haoliming@casco.com.cn</pre>
* <pre><b>company: </b>http://www.casco.com.cn</pre>
* <pre><b>All rights reserved.</b></pre>
* <pre><b>modification:</b></pre>
* <pre></pre>
*/

#include <string>
#include <algorithm>
#include <functional>
#include <iostream>
namespace CASCO
{
	/** 
	* @brief 去掉字符串首部的空格
	* 
	* @param[in] convertString 
	* @return std::string&  
	*/
    inline std::string& leftTrim(std::string& convertString)
    {
        std::string::iterator iter = std::find_if(convertString.begin(), convertString.end(), std::not1(std::ptr_fun(isspace)));
        convertString.erase(convertString.begin(), iter);
        return  convertString;
    }
    
	/** 
	* @brief 去掉字符串尾部的空格
	* 
	* @param[in] convertString 
	* @return std::string&  
	*/
    inline std::string& rightTrim(std::string& convertString)
    {
        std::string::reverse_iterator iter = std::find_if(convertString.rbegin(), convertString.rend(), std::not1(std::ptr_fun(isspace)));
        convertString.erase(iter.base(), convertString.end());
        return   convertString;
    }
    
	/** 
	* @brief 去掉字符串首尾的空格
	* 
	* @param[in] convertString 
	* @return std::string&
	*/
    inline std::string& trim(std::string& convertString)
    {
        leftTrim(rightTrim(convertString));
        return convertString;
    }

	/** 
	* @brief 去掉字符串中全部的空格
	* 
	* @param[in] convertString 
	* @return std::string&  
	*/
    inline std::string& entiTrim(std::string& convertString)
    {
		std::string::iterator beginIter = convertString.begin();
		std::string::iterator endIter = convertString.end();
        std::string::iterator iter = std::find_if(beginIter, endIter, std::ptr_fun(isspace));
		while (iter!=endIter) 
		{
			std::string::iterator iter2 = std::find_if(iter, endIter, std::not1(std::ptr_fun(isspace)));
			convertString.erase(iter, iter2);
			endIter = convertString.end();
			iter = std::find_if(iter, endIter, std::ptr_fun(isspace));
			
		}
		return  convertString;
    }

	/** 
	* @brief 去掉子串中全部的空格
	* begin,end分别是子串的起始结束位置,包括端点
	* @param[in] convertString
	* @param[in] begin
	* @param[in] end
	* @return std::string&  
	*/
	
    inline std::string& beginEndTrim(std::string& convertString,int begin,int end)
    {
		if (begin>end||0==convertString.length()||begin<0) 
		{
			return convertString;
		}
		if (end>convertString.length()-1)
		{
			end = convertString.length()-1;
		}

		if (begin==end)
		{
			if (convertString.at(begin)==' ')
			{
				convertString.erase(begin,1);
			}
			return convertString;
		}

		std::string tempStr = convertString.substr(begin,end-begin+1);
		convertString.erase(begin,end-begin+1);
		entiTrim(tempStr);
		convertString.insert(begin,tempStr);
		return convertString;
    }


	/** 
	* @brief 去掉子串中全部的空格
	* start 是子串的起始位置,strSize 是子串的大小
	* @param[in] convertString
	* @param[in] start
	* @param[in] strSize
	* @return std::string&  
	*/
	
    inline std::string& startSizTrim(std::string& convertString,int start,int strSize)
	{
		if (start<0||strSize<1)
		{
			return convertString;
		}

		if (start>convertString.length()-1)
		{
			start = convertString.length()-1;
		}

		if (strSize==1)
		{
			if (convertString.at(start)==' ')
			{
				convertString.erase(start,1);
			}
			return convertString;
		}

		std::string tempStr = convertString.substr(start,strSize);
		convertString.erase(start,strSize);
		entiTrim(tempStr);
		convertString.insert(start,tempStr);
		return convertString;
	}
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -