1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
| template<typename C, typename Tr, typename Al>
inline void find_and_replace(std::basic_string<C, Tr, Al> & s,
C const *os, typename std::basic_string<C, Tr, Al>::size_type oslen,
C const *ns, typename std::basic_string<C, Tr, Al>::size_type nslen)
{
if (os==0 || oslen==0)
return;
for (typename std::basic_string<C, Tr, Al>::size_type pos=0;
(pos=s.find(os, pos, oslen))!=s.npos;
pos+=nslen)
s.replace(pos, oslen, ns, nslen);
}
template<typename C, typename Tr, typename Al>
inline void find_and_replace(std::basic_string<C, Tr, Al> & s,
C oc,
C nc)
{
for (typename std::basic_string<C, Tr, Al>::size_type pos=0;
(pos=s.find(oc, pos))!=s.npos;
++pos)
s.replace(pos, 1, 1, nc);
} |
Partager