http://developer.51cto.com/art/201002/182459.htm
C++编程语言应方式灵活,一个功能的实现可以采用多种方式来实现。比如对于字符串替换就可以有很多方法来实现,这里主要说一下STL里的WString中的替换,虽然WString自带了一个Replace函数,但是只能替换一次,太不好了,因此单独写了个C++字符串替换函数
C++字符串替换函数代码如下:
- @brief 实现字符串替换
- @param orignStr 源串
- @param oldStr 查找的串
- @param newStr 替换的新串
- @return 返回修改后的串
- static wstring Replace(const wstring& orignStr, const wstring& oldStr, const wstring& newStr);
[C++字符串替换函数的实现]
- std::wstring Replace( const wstring& orignStr, const wstring& oldStr, const wstring& newStr )
- {
- size_t pos = 0;
- wstring tempStr = orignStr;
- wstring::size_type newStrnewStrLen = newStr.length();
- wstring::size_type oldStroldStrLen = oldStr.length();
- while(true)
- {
- pos = tempStr.find(oldStr, pos);
- if (pos == wstring::npos) break;
- tempStr.replace(pos, oldStrLen, newStr);
- pos += newStrLen;
- }
- return tempStr;
- }
以上就是我们对C++字符串替换函数的相关介绍。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
http://blog.youkuaiyun.com/win817/article/details/1540170
int ReplaceStr(char *sSrc, char *sMatchStr, char *sReplaceStr)
{
int StringLen;
char caNewString[strlen(sSrc)];
char *FindPos = strstr(sSrc, sMatchStr);
if( (!FindPos) || (!sMatchStr) )
return -1;
while( FindPos )
{
memset(caNewString, 0, sizeof(caNewString));
StringLen = FindPos - sSrc;
strncpy(caNewString, sSrc, StringLen);
strcat(caNewString, sReplaceStr);
strcat(caNewString, FindPos + strlen(sMatchStr));
strcpy(sSrc, caNewString);
FindPos = strstr(sSrc, sMatchStr);
}
return 0;
}
均未验证,待验证。