Thread overview | |||||
---|---|---|---|---|---|
|
March 06, 2012 Translate for chars to strings | ||||
---|---|---|---|---|
| ||||
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. |
March 06, 2012 Re: Translate for chars to strings | ||||
---|---|---|---|---|
| ||||
Posted in reply to Andrej Mitrovic | 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 |
March 06, 2012 Re: Translate for chars to strings | ||||
---|---|---|---|---|
| ||||
Posted in reply to Ali Çehreli | Hmm somehow I missed that. Thanks.
On 3/6/12, Ali Çehreli <acehreli@yahoo.com> wrote:
> 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
>
|
Copyright © 1999-2021 by the D Language Foundation