[疑难] 切片错误?

oldrev 2008-10-18
import std.stdio;

void main()
{
    char[] s = r"abcde%";  
    char[] b = s[0..$] ;  
    writefln(b.length);
}


根本没有问题,程序输出6,你用 writefln 直接打印 b 那当然是异常了
ideage 2008-10-18
谢谢oldrev!

终于发现问题了,是用writefln调试的原因.
代码没有问题.
import std.stdio;   
  
void main()   
{
   char[] s ="abcde%%"; 
   char[] b = s[0..$] ;
   assert(b=="abcde%%");   
}
Colorful 2008-10-18
的确, Slicing 没有问题。
有问题的是 writefln 的用法。

import std.stdio;

void main()
{
    char[] a = "abcde%";
    auto b = a[0..$];

    writefln("%s", b);
}
Global site tag (gtag.js) - Google Analytics