On 21.09.2011 01:57, Christophe wrote:
size_t myCount(string text)
{
size_t n = text.length;
for (uint i=0; i<text.length; ++i)
{
auto s = text[i]>>6;
n -= (s>>1) - ((s+1)>>2);
}
return n;
}
Here is a more readable and a bit faster version on dmd windows:
size_t utfCount(string text)
{
size_t n = 0;
for (uint i=0; i<text.length; ++i)
n += ((text[i]>>6)^0b10)? 1: 0;
return n;
}
