基于C++字符串替换函数的使用详解

时间:2022-07-02 06:38:55

在C++中,字符串替换有很多方法,这里主要说一下STL里的WString中的替换,虽然WString自带了一个Replace函数,但是只能替换一次,太不好了,因此单独写了个替换函数
[函数]

复制代码 代码如下:


/**
        * @brief   实现字符串替换
        * @param   orignStr 源串
        * @param   oldStr  查找的串
        * @param   newStr  替换的新串
        * @return  返回修改后的串
        */
        static wstring Replace(const wstring& orignStr, const wstring& oldStr, const wstring& newStr);


[实现]

复制代码 代码如下:


std::wstring Replace( const wstring& orignStr, const wstring& oldStr, const wstring& newStr )
{
    size_t pos = 0;
    wstring tempStr = orignStr;
    wstring::size_type newStrLen = newStr.length();
    wstring::size_type oldStrLen = oldStr.length();
    while(true)
    {
        pos = tempStr.find(oldStr, pos);
        if (pos == wstring::npos) break;
        tempStr.replace(pos, oldStrLen, newStr);        
        pos += newStrLen;
    }
    return tempStr;
}