在学习C ++和DI时,我试图通过测试两种语言的代码来比较易用性。
因此,在C ++中,我有类似以下内容(没有显示完整的C ++代码,仅用于演示):
char src[] = "some10char";
char des[];
for (int i=0; i<1000; i++)
{
src[9] = '0' + i % (126 - '0');
des = src;
}
在上面的“伪”中,for循环主体中的第一行不仅分配int
值,而且还尝试避免不可打印的值。
在D中我该怎么做?
到目前为止,我已经成功投放int
到目标char
,但我不知道自己是否正确:
char[] src = "some10char".dup;
char[] dst;
for (int i=0; i<1000; i++)
{
if (i<15)
src[src.length-1] = cast(char)(i+15);
else
src[src.length-1] = cast(char)(i);
dst = src.dup // testing also dst = src;
}
您可以像在c ++示例中那样,在D中添加和减去字符拼写,例如:
import std.stdio;
char[] str;
void main(string[] args)
{
for(int i=0; i<1000; i++)
{
str ~= cast(char)( i % (0x7F - '0') + '0') ;
}
writeln(str);
}
只打印大于0
和小于的ascii字符0x7F
。将该字符隐式转换为int,然后将对它的最终操作i
(本身给出int
)显式转换为char
(因此模/掩码为0xFF)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句