d按美标打印字节

import std.stdio;
import std.string;

void main() {
    ubyte[8] b1 = [0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x00, 0x00];
    ubyte[8] b2 = [0x68, 0x65, 0x6C, 0x6C, 0x6F, 0x0A, 0x0A, 0x0A];
    /* "hello\n\0\0" */

    char[] s1 = fromStringz(cast(char*)b1.ptr);
    writefln("'%s, world'", s1.strip);

    char[] s2 = cast(char[])b2[0 .. $];
    writefln("'%s, world'", s2.strip);
}

或这样:

import std.algorithm  : until;
writefln("got '%s' from '%s:%d'", (cast(char[])ioCtx.buf[]).until('\n'), client.addr, client.port);

并未保存缓冲的切片.如果只想搜索\n一次并用它,得用切至该符的算法.

posted @ 2022-01-01 14:30  zjh6  阅读(16)  评论(0)    收藏  举报  来源