View source code
Display the source code in std/string.d from which this page was generated on github.
Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page. Requires a signed-in GitHub account. This works well for small changes. If you'd like to make larger changes you may want to consider using local clone.

Function std.string.fromStringz

inout(Char)[] fromStringz(Char) (
  scope return inout(Char)* cString
) pure nothrow @nogc @system
if (isSomeChar!Char);

inout(Char)[] fromStringz(Char) (
  scope return inout(Char)[] cString
) pure nothrow @nogc @safe
if (isSomeChar!Char);

Parameters

NameDescription
cString A null-terminated c-style string.

Returns

A D-style array of char, wchar or dchar referencing the same string. The returned array will retain the same type qualifiers as the input.

Important Note: The returned array is a slice of the original buffer. The original data is not changed and not copied.

Example

writeln(fromStringz("foo\0"c.ptr)); // "foo"c
writeln(fromStringz("foo\0"w.ptr)); // "foo"w
writeln(fromStringz("foo\0"d.ptr)); // "foo"d

writeln(fromStringz("福\0"c.ptr)); // "福"c
writeln(fromStringz("福\0"w.ptr)); // "福"w
writeln(fromStringz("福\0"d.ptr)); // "福"d

Example

struct C
{
    char[32] name;
}
writeln(C("foo\0"c).name.fromStringz()); // "foo"c

struct W
{
    wchar[32] name;
}
writeln(W("foo\0"w).name.fromStringz()); // "foo"w

struct D
{
    dchar[32] name;
}
writeln(D("foo\0"d).name.fromStringz()); // "foo"d

Authors

Walter Bright, Andrei Alexandrescu, Jonathan M Davis, and David L. 'SpottedTiger' Davis

License

Boost License 1.0.