}
#endif
-void
-String::substitute_char (char chr, String sub)
+String
+String::substitute (String find, String replace)
+{
+ int n = find.length ();
+ int m = replace.length ();
+ for (int i = index (find), j = 0; i > -1;
+ i = right_string (length () - j).index (find))
+ {
+ *this = left_string (i + j)
+ + replace
+ + right_string (length () - j - i - n);
+ j += i + m;
+ }
+ return *this;
+}
+
+String
+String::substitute (char find, char replace)
{
- for (int i = index (chr); i > -1; i = index (chr))
- *this = left_string (i) + sub + right_string (length () - i - 1);
+ for (int i = index (find); i > - 1; i = index (find))
+ (*this)[i] = replace;
+ return *this;
}