Anonymous user
Rot-13: Difference between revisions
Updated 2 D entries
(Updated 2 D entries) |
|||
Line 491:
=={{header|D}}==
===Using Standard Functions===
import std.ascii: letters, U = uppercase, L = lowercase;
import std.string: maketrans, translate;
immutable r13 = maketrans(letters,
U[13 .. U.length] ~ U[0 .. 13] ~
L[13 .. L.length] ~ L[0 .. 13]);
void main() {▼
}</lang>▼
Output:▼
<pre>The Quick Brown Fox Jumps Over The Lazy Dog!</pre>▼
===Imperative Implementation===
<lang d>import std.stdio, std.traits, std.ascii, std.range, std.conv;
S rot13(S)(in S s) if (isSomeString!S) {▼
return rot(s, 13);▼
}▼
S rot(S)(in S s, in int key) if (isSomeString!S) {
auto r = new dchar[s.walkLength];
foreach (i, const dchar c; s) {
if (
else if (
r[i] = c;
}
return to!S(r);
▲}
▲S rot13(S)(in S s) if (isSomeString!S) {
▲ return rot(s, 13);
}
void main() {
▲}</lang>
▲Output:
▲<pre>The Quick Brown Fox Jumps Over The Lazy Dog!</pre>
▲<lang d>import std.stdio, std.string;
▲void main() {
▲ lowercase[13..$] ~ lowercase[0..13]);
▲ writefln("This is the 1st test!".translate(r13, null));
}</lang>
|