(Заранее извиняюсь, если не по теме. Первый раз что-то пишу тут, а потому еще не освоился)
Здраствуйте. Я делаю плагин, в котором есть работа с текстом и мне нужно сделать проверку на кол-во символов, которые ввел игрок. Делаю пока так
Есть ли какой-нибудь другой способ? В тырнетах искал и там только strlen и ему подобные функции, которые возвращают кол-во байтов (А мы помним, что En-символы = 1 байт, Ru-символы = 2 байта), а не символов, потому подсчет неверный. Может, я что-то пропустил и люди давно пользуются какими-то нормальными способами?
Здраствуйте. Я делаю плагин, в котором есть работа с текстом и мне нужно сделать проверку на кол-во символов, которые ввел игрок. Делаю пока так
Код:
stock get_symvols(dest[], len)
{
new Float:total; //Переменная, куда будем суммировать наши символы
for(new i = 0; i <= len; i++)
{
if(get_char_bytes(dest[i]) == 1) total += 1.0; // Если проверяемый символ кодируется одним байтом, то прибавляем 1 к нашей переменной
else if(get_char_bytes(dest[i]) > 1) total += 0.5; //Если же символ кодируется более одного байта, то прибавляем половину
}
return floatround(total, floatround_ceil); // Возвращаем, округливая до целового в большую сторону
}