C++关于string的一些用法

#include <iostream>
#include <algorithm>
#include <functional>
using namespace std;

class Teststring
{
public:
	
	void Toupper(string& str);					//转大写	
	void Tolower(string& str);					//转小写	
	void TrimRight(string& str);				//去除后面的空格	
	void TrimLeft(string& str);					//去除前面的空格	
	void DeleteChar(string& str,char ch);		//去掉字符串里某个字符,注意,是都去掉	
	void TestReplace();							//替换字符串里的某一段字符 例如 abcdef 将ab替换成cd
	bool StartWith(const string& str,const string& strStart);		//字符串以某段开头
	bool EndWith(const string& str,const string& strEnd);			//字符串以某段结尾
	void TestReverse();							//翻转字符串
};

void Teststring::Toupper(string& str)
{
	transform(str.begin(),str.end(),str.begin(),::toupper);
}

void Teststring::Tolower(string& str)
{
	transform(str.begin(),str.end(),str.begin(),::tolower);
}

void Teststring::TrimLeft(string& str)
{
	str.erase(0,str.find_first_not_of(' '));
}
void Teststring::TrimRight(string& str)
{
	str.erase(str.find_last_not_of(' ')+1);
}

void Teststring::DeleteChar(string& str,char ch)
{
	str.erase(remove_if(str.begin(),str.end(),bind2nd(equal_to<char>(), ch)),str.end());
}

void Teststring::TestReplace()
{
	string str = "abcdef";
	string strSub = "ab";
	str.replace(str.find(strSub),strSub.size(),"cd");
	cout<<str.c_str()<<endl;
}

bool Teststring::StartWith(const string& str,const string& strStart)
{
	if(str.empty() || strStart.empty())
	{
		return false;
	}

	return str.compare(0,strStart.size(),strStart)==0?true:false;
}

bool Teststring::EndWith(const string& str,const string& strEnd)
{
	if(str.empty() || strEnd.empty())
	{
		return false;
	}
	return str.compare(str.size()-strEnd.size(),strEnd.size(),strEnd)==0?true:false;
}

//翻转汉字的过程中,会出现乱码,因为该方法是按char进行翻转的
void Teststring::TestReverse()
{
	string str1 = "张东升";
	std::reverse(str1.begin(),str1.end());
	string str2 = "";
	str2.assign(str1.rbegin(),str1.rend());

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

酷python

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值