On Thursday, 10 July 2014 at 16:20:29 UTC, Alexandre wrote:
Sorry..
I mean:

auto X = "100000000000000";
auto N = X.insertInPlace(3,',');

On Thursday, 10 July 2014 at 16:05:51 UTC, Alexandre wrote:
I have a string X and I need to insert a char in that string...

auto X = "100000000000000";

And I need to inser a ',' in position 3 of this string..., I try to use the array.insertInPlace, but, not work...

I try this:
auto X = "100000000000000";
auto N = X.insertInPlace(1,'0');

`std.array.insertInPlace` doesn't return anything. "In place" here means "in situ", i.e. it will not create a new string, but insert the new elements into the existing one. This operation may still reallocate, in which case the array slice you're passing in will be updated to point to the new memory.

Either use this instead:

    auto x = "100000000000000";
    auto n = x.dup;
    n.insertInPlace(3, ',');
    // or: insertInPlace(n, 3, ',');

... or use slicing and concatenating to construct a new string:

    auto g = x[0 .. 3] ~ ',' ~ x[3 .. $];

(Side note about style: It's common practice to use lower-case names for variables, upper-case first letters are used to denote types. But of course, that's a matter of taste.)

Reply via email to