String length: Difference between revisions
Content added Content deleted
(Add ed example) |
|||
Line 1,319: | Line 1,319: | ||
UTF-8 byte length: 5 |
UTF-8 byte length: 5 |
||
</pre> |
</pre> |
||
=={{header|Ed}}== |
|||
===Character Length=== |
|||
Uses unary <tt>i</tt>-encoded numbers for string length. Predictably over-estimates the length by one character due to newline handling hack. |
|||
<syntaxhighlight> |
|||
H |
|||
,p |
|||
g/./s//i/g |
|||
g/^/s//i/ |
|||
,j |
|||
# unary -> decimal (for 0-10000 range) |
|||
g/i{9000}(i{0,999})/s//9\1/ |
|||
g/i{8000}(i{0,999})/s//8\1/ |
|||
g/i{7000}(i{0,999})/s//7\1/ |
|||
g/i{6000}(i{0,999})/s//6\1/ |
|||
g/i{5000}(i{0,999})/s//5\1/ |
|||
g/i{4000}(i{0,999})/s//4\1/ |
|||
g/i{3000}(i{0,999})/s//3\1/ |
|||
g/i{2000}(i{0,999})/s//2\1/ |
|||
g/i{1000}(i{0,999})/s//1\1/ |
|||
v/^[0-9]i*$/s/.*/0&/ |
|||
g/i{900}(i{0,99})/s//9\1/ |
|||
g/i{800}(i{0,99})/s//8\1/ |
|||
g/i{700}(i{0,99})/s//7\1/ |
|||
g/i{600}(i{0,99})/s//6\1/ |
|||
g/i{500}(i{0,99})/s//5\1/ |
|||
g/i{400}(i{0,99})/s//4\1/ |
|||
g/i{300}(i{0,99})/s//3\1/ |
|||
g/i{200}(i{0,99})/s//2\1/ |
|||
g/i{100}(i{0,99})/s//1\1/ |
|||
v/^[0-9]{2}i*$/s/^([0-9])(i*)$/\10\2/ |
|||
g/i{90}(i{0,9})/s//9\1/ |
|||
g/i{80}(i{0,9})/s//8\1/ |
|||
g/i{70}(i{0,9})/s//7\1/ |
|||
g/i{60}(i{0,9})/s//6\1/ |
|||
g/i{50}(i{0,9})/s//5\1/ |
|||
g/i{40}(i{0,9})/s//4\1/ |
|||
g/i{30}(i{0,9})/s//3\1/ |
|||
g/i{20}(i{0,9})/s//2\1/ |
|||
g/i{10}(i{0,9})/s//1\1/ |
|||
v/^[0-9]{3}i*$/s/^([0-9]{2})(i*)$/\10\2/ |
|||
g/i{9}/s//9/ |
|||
g/i{8}/s//8/ |
|||
g/i{7}/s//7/ |
|||
g/i{6}/s//6/ |
|||
g/i{5}/s//5/ |
|||
g/i{4}/s//4/ |
|||
g/i{3}/s//3/ |
|||
g/i{2}/s//2/ |
|||
g/i{1}/s//1/ |
|||
v/^[0-9]{4}i*$/s/^([0-9]{3})(i*)$/\10\2/ |
|||
g/0+([0-9])/s//\1/ |
|||
,p |
|||
Q |
|||
</syntaxhighlight> |
|||
=={{header|Elena}}== |
=={{header|Elena}}== |