string - resueltos - imprimir cadena de caracteres en c
Cómo lanzar un char*a la cadena en D? (2)
Tengo un puntero de char estándar que intento lanzar a una cadena.
// string to char*
char *x = cast(char*)("Hello World/0");
// char* to string?
string x = cast(string)x;
string x = cast(immutable(char)[])x;
¡Error!
¿Alguna idea de cómo lanzar un char * a una cadena en D?
Si conoce la longitud exacta, puede hacer esto:
immutable(char)* cptr = obj.SomeSource();
int len = obj.SomeLength();
string str = cptr[0..len];
En algunos casos (como si la cadena contiene /0
) es necesario.
Use std.conv.to
para convertir de char*
a string
. Use std.string.toStringZ
para ir hacia el otro lado.
import std.string;
import std.stdio;
import std.conv;
void main()
{
immutable(char)* x = "Hello World".toStringz();
auto s = to!string(x);
writeln(s);
}