/*
string.cc - implement String
- (c) 1997--2005 Han-Wen Nienhuys & Jan Nieuwenhuizen
+ (c) 1997--2006 Han-Wen Nienhuys & Jan Nieuwenhuizen
*/
#ifndef _GNU_SOURCE // we want memmem
#include <cstring>
#include <iostream>
+using namespace std;
#include "libc-extension.hh"
#include "string-convert.hh"
return strh_.to_bytes ();
}
-char const *
-String::to_str0 () const
-{
- return strh_.to_str0 ();
-}
-
Byte *
String::get_bytes ()
{
{
char const *me = strh_.to_str0 ();
- char const *p = (char const *)
- memmem (me, length (), searchfor.to_str0 (), searchfor.length ());
+ char const *p
+ = (char const *) memmem (me, length (),
+ searchfor.to_str0 (), searchfor.length ());
if (p)
return p - me;
{
char *found = (char *) memchr (me, set[i], n);
if (found)
- {
- return found - (char const *)me;
- }
+ return found - (char const *)me;
}
return -1;
}
}
#endif
-void
+String
String::substitute (String find, String replace)
{
- int n = replace.length ();
- for (int i = index (find); i > - 1; i = index (find))
- *this = left_string (i) + find + right_string (length () - i - n);
+ 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;
}
-void
+String
String::substitute (char find, char replace)
{
for (int i = index (find); i > - 1; i = index (find))
(*this)[i] = replace;
+ return *this;
}