On Saturday, 28 January 2017 at 16:01:38 UTC, Ivan Kazmenko wrote:
As said, the byte count is indeed string.length.
The number of code points can be found by std.range.walkLength,
but be aware it takes O(answer) time to compute.
Example:
-----
import std.range, std.stdio;
void main () {
auto s = "Привет!";
writeln (s.length); // 13 bytes
writeln (s.walkLength); // 7 code points
}
Thank you Ivan,
I believe I saw somewhere that in D a char was not neccesarrily
the same as an ubyte because chars sometimes take more than one
byte, so since a string is an array of chars, I thought length
behaved like walkLength (which I had not seen), in other words,
that it simply returned the amount of elements in the array.