D语言字符串转换:C语言 const(char)[] 和 char[] 到 D 语言字符串
D语言字符串转换:C语言 const(char)[] 和 char[] 到 D 语言字符串
本文将介绍如何将 C 语言中的 const(char)[] 和 char[] 类型转换为 D 语言字符串,并提供几种方法以及详细的代码示例。
注意: 使用 to!string 函数转换 const(char)[] 或 char[] 时,默认只转换第一个字符,要转换整个字符串需要使用 cstr.ptr。
1. 使用 std.string.toStringz 函数将 const(char)[] 转为 D 语言字符串:
import std.string;
const char[] cstr = 'hello';
string dstr = toStringz(cstr);
2. 使用 std.string.fromString 函数将 char[] 转为 D 语言字符串:
import std.string;
char[] cstr = 'world'.dup;
string dstr = fromString(cstr);
3. 使用 std.conv.to 函数将 const(char)[] 或 char[] 转为 D 语言字符串:
import std.conv;
const char[] cstr = 'hello';
string dstr1 = to!string(cstr); // 只转换第一个字符
string dstr2 = to!string(cstr.ptr); // 转换整个字符串
char[] cstr2 = 'world'.dup;
string dstr3 = to!string(cstr2); // 转换整个字符串
完整的例子:
import std.string;
import std.conv;
void main()
{
// 示例1
const char[] cstr1 = 'hello';
string dstr1 = toStringz(cstr1);
writeln(dstr1);
// 示例2
char[] cstr2 = 'world'.dup;
string dstr2 = fromString(cstr2);
writeln(dstr2);
// 示例3
const char[] cstr3 = 'foo';
string dstr3 = to!string(cstr3.ptr); // 转换整个字符串
writeln(dstr3);
char[] cstr4 = 'bar'.dup;
string dstr4 = to!string(cstr4); // 转换整个字符串
writeln(dstr4);
}
原文地址: https://www.cveoy.top/t/topic/obTl 著作权归作者所有。请勿转载和采集!