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());  

}

转自:

https://blog.csdn.net/kwsy2008/article/details/11533329
原文链接: https://www.cnblogs.com/testlife007/p/8984847.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/273266

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月14日 下午11:28
下一篇 2023年2月14日 下午11:28

相关推荐