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
			a local clone.
		
	dmd.root.string
Contains various string related functions.
Authors: 
Walter Bright, https://www.digitalmars.com
License: 
Source root/string.d
Documentation https://dlang.org/phobos/dmd_root_string.html
- pure nothrow @nogc inout(char)[]toDString(inout(char)*s);
- Slices a \0-terminated C-string, excluding the terminator
- autofTuple(const(char)[]str);
- Returns:a (length, ptr) tuple for passing a D string to printf-style functions with the format string %.*sExamples:import core.stdc.stdio: snprintf; char[6] buf = '.'; const(char)[] str = "cutoff"[0..4]; snprintf(buf.ptr, buf.length, "%.*s", str.fTuple.expand); assert(buf[] == "cuto\0."); 
- static pure nothrow @nogc booliequals(const(char)[]s1, const(char)[]s2);
- Compare two slices for equality, in a case-insensitive wayComparison is based on char and does not do decoding. As a result, it's only really accurate for plain ASCII strings.Parameters:const(char)[] s1string to compare const(char)[] s2string to compare Returns:true ifs1==s2regardless of case
- nothrow autotoCStringThen(alias dg)(const(char)[]src);
- Copy the content ofsrcinto a C-string ('\0' terminated) then call dgThe intent of this function is to provide an allocation-less way to call a C function using a D slice. The function internally allocates a buffer if needed, but frees it on exit.Note The argument to dg is scope. To keep the data around after dg exits, one has to copy it. Parameters:const(char)[] srcSlice to use to call the C function dg Delegate to call afterwards Returns:The return value of T
- nothrow char[]toCString(scope const(char)[]s);
- Convert a D string to a C string by allocating memory, copying it, and adding a terminating 0.Parameters:const(char)[] sstring to copy Result 0-terminated copy of s 
- pure nothrow @nogc @safe stringstripLeadingLineTerminator(stringstr);
- Strips one leading line terminator of the given string.The following are what the Unicode standard considers as line terminators:
 This function will also strip \r\n.Name D Escape Sequence Unicode Code Point Line feed \n U+000A Line tabulation \v U+000B Form feed \f U+000C Carriage return \r U+000D Next line U+0085 Line separator U+2028 Paragraph separator U+2029 
- @trusted intdstrcmp()(scope const char[]s1, scope const char[]s2);
- A string comparison functions that returns the same result as strcmpNote Strings are compared based on their ASCII values, no UTF-8 decoding. Some C functions (e.g. qsort) require a int result for comparison.See Also:Druntime's core.internal.string
- char[N + 1]toStaticArray(size_t N)(scope const(char)[N]literal);
- Infers the length N of a string literal and coerces its type to a static array with length N + 1. Returns the string with a null character appended to the end.Parameters:const(char)[N] literalstring literal Notes - LDC produces quite optimal code for short strings:
 Examples:auto m = "123".toStaticArray; const c = "123".toStaticArray; immutable i = "123".toStaticArray; enum e = "123".toStaticArray; assert(m == "123\0"); assert(c == "123\0"); assert(i == "123\0"); static assert(e == "123\0"); const empty = "".toStaticArray; static assert(empty.length == 1); static assert(empty[0] == '\0'); 
- pure nothrow @nogc @system boolstartsWith(scope const(char)*p, scope const(char)[]needle);
 pure nothrow @nogc @safe boolstartsWith(scope const(char)[]str, scope const(char)[]prefix);
- Checks if C stringpstarts withneedle.Parameters:const(char)* pthe C string to check const(char)[] needlethe string to look for Returns:true ifpstarts withneedleExamples:const buf = "123".toStaticArray; const ptr = &buf[0]; assert(ptr.startsWith("")); assert(ptr.startsWith("1")); assert(ptr.startsWith("12")); assert(ptr.startsWith("123")); assert(!ptr.startsWith("1234")); 
- autosplitLines(const char[]text);
- Taketextand turn it into an InputRange that emits slices intotextfor each line.Parameters:char[] textarray of characters Returns:InputRange accessingtextas a sequence of linesReference std.string. splitLines()
- @safe FindSplitfindSplit(return scope const(char)[]str, scope const(char)[]needle);
- Find a substring in a string and split the string into before and after parts.Parameters:const(char)[] strstring to look into const(char)[] needlesubstring to find in str (must not be empty) Returns:a FindSplit object that casts to true iffneedlewas found insidestr. In that case, split[1] is the needle, and split[0]/split[2] are before/after the needle.
- @safe const(char)[]findBetween(const(char)[]str, const(char)[]l, const(char)[]r);
- Find a string inbetween two substringsParameters:const(char)[] strstring to look into const(char)[] lsubstring to find on the left const(char)[] rsubstring to find on the right Returns:substring ofstrinbetweenlandr
Copyright © 1999-2025 by the D Language Foundation | Page generated by
Ddoc on Mon Mar 31 10:27:39 2025