On 03/05/2012 04:32 PM, Andrej Mitrovic wrote:
There's a really useful function 'translate' in std.string, used like this:

__gshared dchar[dchar] MangleTable;

shared static this()
{
     MangleTable =
     [
         '*':'p',  // ptr
         '&':'r',  // reference
         '<':'L',  // left angle
         '>':'R',  // right angle
         ' ':'_',  // space
     ];
}

string mangleType(string input)
{
     return input.translate(MangleTable);
}

However I'm looking for something which translates characters to
strings. Of course that also implies potential reallocation. Does
anyone have such a function in some library?

Note that I'm not looking for .mangleof, I need to work on strings of
C++ names, not D symbols.

One of the translate() overloads can translate from dchar to string. The third example is exactly about that:

  http://dlang.org/phobos/std_string.html#translate

string[dchar] transTable3 = ['e' : "5", 'o' : "orange"];
assert(translate("hello world", transTable3) == "h5llorange worangerld");

Ali

Reply via email to