dlang如何将一个char[]和trim转换成字符串?

dlang how to convert and trim a char[] into a string?

我正在尝试将缓冲区转换为字符串,但显然有一个 space 我无法删除
我应该如何剥离这个 space 并将 char[] 转换为字符串容器

string getClass(HWND hwnd=NULL){
    char[100] str;
    GetClassNameA(hwnd, str.ptr, str.length);
    writeln(str.dup.strip,'"'); //nothing is stripped, str is printed as 100 characters
    writeln(str[99]=='[=11=]'); //false
    writeln(str[99]==' '); //false
    writeln(str.dup[99]=='[=11=]'); //false
    writeln(str.dup[99]==' '); //false
    writeln(str.dup.strip[99]=='[=11=]'); //false
    writeln(str.dup.strip[99]==' '); //false
    return to!string(str).strip; //same nothing is stripped
}

您需要以正确的长度对缓冲区进行切片。 GetClassName returns 字符串的长度所以做一些像

char[100] buffer;
auto recv = GetClassNameA(hwnd, buffer.ptr, buffer.length);
if(recv == 0) throw new Exception("failed");
char[] str = buffer[0 .. recv];
// now you can work with str