'); }
'); }
출처링크 : http://ljh131.tistory.com/88
C++ STL의 string을 이용해서 구현한 replace all 함수입니다.
마지막 두줄의 assert를 보면 알 수 있듯이, 이 함수엔 문자열이 재귀적으로 치환되는 문제가 없습니다.
마지막 두줄의 assert를 보면 알 수 있듯이, 이 함수엔 문자열이 재귀적으로 치환되는 문제가 없습니다.
- #include <iostream>
- #include <string>
- #include <cassert>
- using namespace std;
- string replaceAll(const string &str, const string &pattern, const string &replace)
- {
- string result = str;
- string::size_type pos = 0;
- string::size_type offset = 0;
- while((pos = result.find(pattern, offset)) != string::npos)
- {
- result.replace(result.begin() + pos, result.begin() + pos + pattern.size(), replace);
- offset = pos + replace.size();
- }
- return result;
- }
- int main()
- {
- assert(replaceAll("abcdefg", "bc", "de") == "adedefg");
- assert(replaceAll("abc\nabc\nabc", "\n", "") == "abcabcabc");
- assert(replaceAll("aaabbbaaa", "aaa", "1") == "1bbb1");
- assert(replaceAll("ababab ababab", "ab", "1") == "111 111");
- assert(replaceAll("abcdefg", "gf", "de") == "abcdefg");
- assert(replaceAll("aaa", "a", "aa") == "aaaaaa");
- assert(replaceAll("11aa11aa", "1", "11") == "1111aa1111aa");
- return 0;
- }
'Tech & IT > 프로그래밍' 카테고리의 다른 글
"MFC에 RichEdit 1.0 컨트롤 사용"에 대한 잘못된 설명서 (0) | 2008.11.19 |
---|---|
간단 API Tip (0) | 2008.11.18 |
CPP Unit 관련 자료 (0) | 2008.10.31 |
Win32 환경에서의 타이머 종류 (0) | 2008.10.23 |
HexToString code조각 (0) | 2008.09.08 |