'replaceall'에 해당되는 글 1건
- 2008/03/29 C++용 replace all
C++ STL의 string을 이용해서 구현한 replace all 함수입니다.
마지막 두줄의 assert를 보면 알 수 있듯이, 이 함수엔 문자열이 재귀적으로 치환되는 문제가 없습니다.
마지막 두줄의 assert를 보면 알 수 있듯이, 이 함수엔 문자열이 재귀적으로 치환되는 문제가 없습니다.
#include#include #include 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; }
'Programming > Misc' 카테고리의 다른 글
| Visual Studio 찾기 버그 'Find was stopped in progress.' 해결법 (0) | 2008/04/01 |
|---|---|
| C++용 replace all (0) | 2008/03/29 |
| 프로그래머를 위한, 프로그래머의 Consolas 폰트 (2) | 2008/03/02 |
| 타이머에서 메시지 박스를 띄울때는 타이머를 중지 시키고 띄우자 (0) | 2008/03/02 |
| 파일 이름 바꾸기 - 파이썬 (0) | 2008/01/21 |
| 정규식 쓸때는 Regular Expression Workbench (2) | 2007/09/17 |



Prev
Rss Feed