приведение к типу байт будет быстрее. Вызов функции - уже лишняя операция. В C это реализовано правильно - байт и есть unsigned char.
Вот простейший алгоритм.
var counter: array [192..255] of longint;
for i:=192 to 255 do counter[i]:=0;
for i:=1 to length(s) do
if s[i] in [#192..#255] then counter[byte(s[i])]:=counter[byte(s[i])]+1;
В массиве будет кол-во повторений символов диапазона CP1251 Cyrillic. Под любой диапазон кодировки 866 переделать элементарно.
|