【STL】C++使用STL处理替换字符串操作。
// Examples4STL.cpp : 定义控制台应用程序的入口点。 // #include "stdafx.h" #include <stdio.h> #include <iostream> #include <string> std::string replace( const std::string& inStr, const char* pSrc, const char* pReplace ); int _tmain(int argc, _TCHAR* argv[]) { std::string cstr("tomcat is a male catat"); std::cout << replace(cstr,"cat","") << std::endl; return 0; } std::string replace( const std::string& inStr, const char* pSrc, const char* pReplace ) { std::string str = inStr; std::string::size_type stStart = 0; std::string::iterator iter = str.begin(); while( iter != str.end() ) { // 从指定位置 查找下一个要替换的字符串的起始位置。 std::string::size_type st = str.find( pSrc, stStart ); if ( st == str.npos ) { break; } iter = iter + st - stStart; // 将目标字符串全部替换。 str.replace( iter, iter + strlen( pSrc ), pReplace ); iter = iter + strlen( pReplace ); // 替换的字符串下一个字符的位置 stStart = st + strlen( pReplace ); } return str; }