compute from a string the text of a string literal

Paul Backus snarwin at gmail.com
Wed Jan 17 18:53:48 UTC 2024


On Wednesday, 17 January 2024 at 18:44:14 UTC, Carl Sturtivant 
wrote:
> Hello,
> I'd like a function like this,
> ```
> string image(string s)
> ```
> that maps any string s into the doubly quoted backslash escaped 
> text that would be a string literal for s were it pasted into a 
> program. Perhaps with a second parameter with detailed options.
>
> Is there something out there I could use?

There's a function that does this in Phobos, but it's `private`. 
Currently, the only way to access it is by calling `to!string` or 
`format` on a range that contains the string you want to convert 
as an element:

```d
void main()
{
     import std.range, std.conv, std.stdio;

     string s = `"foo"\bar`;
     string escaped = only(s).to!string[1 .. $-1]; // slice off [ 
and ]
     writeln(escaped); // "\"foo\"\\bar"
}
```


More information about the Digitalmars-d-learn mailing list