Feature #838
Consider adding multireplace to the Core
Status: | Approved | Start date: | 08/27/2014 | |
---|---|---|---|---|
Priority: | Normal | Due date: | ||
Assignee: | - | % Done: | 0% | |
Category: | - | Spent time: | - | |
Target version: | - |
Description
String Replace(const String& s, const VectorMap<String, String>& replace) { String r; int i = 0; while(i < s.GetCount()) { int best = -1; int bestlen = 0; int len = s.GetCount() - i; const char *q = ~s + i; for(int j = 0; j < replace.GetCount(); j++) { const String& m = replace.GetKey(j); int l = m.GetCount(); if(l <= len && l > bestlen && memcmp(~m, q, l) == 0) { bestlen = l; best = j; } } if(best >= 0) { i += bestlen; r.Cat(replace[best]); } else { r.Cat(*q); i++; } } return r; }
History
#1 Updated by Miroslav Fidler over 10 years ago
- Status changed from New to Approved