[Вопрос] Поиск русских букв в строке
|
|
Ty3uK | Дата: Суббота, 25 Августа 2012, 11:14:27 | Сообщение # 1 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Как можно найти русские буквы в строке? Кроме перебора алфавита
И что делает функция GetLocalizedString(str)?
|
|
|
|
SirNikolas | Дата: Суббота, 25 Августа 2012, 11:35:30 | Сообщение # 2 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Code //! runtextmacro DeclareDictionary("integer", "boolean", "IntegerComparison")
library_once IntegerComparison { public bool less(int op1, int op2) { return op1 < op2; } public bool equal(int op1, int op2) { return op1 == op2; } }
library Cirillic uses Dictionaryintegerboolean { private Dictionary_integer_boolean Dict;
int GetNextCirillic(string s, int searchPos) { int l = StringLength(s); whilenot searchPos >= l { if Dict.Exists[StringHash(SubString(s, searchPos, searchPos + 1))] { return searchPos; } searchPos++; } return -1; }
callback onInit() { string s = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдеёжзийклмнопрстуфхцчшщъыьэюя"; int i = StringLength(s); Dict = Dictionary_integer_boolean.Create(); loop { Dict[StringHash(SubString(s, i - 1, i))] = true; exitwhen i == 1; i--; } Dict.Rebuild(); } }
|
|
|
|
Ty3uK | Дата: Суббота, 25 Августа 2012, 12:13:15 | Сообщение # 3 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| Ник, а не проще перевести входящую строку в верхний регистр и исключить маленткие буквы? Добавлено (25 Августа 2012, 12:13:15) --------------------------------------------- и как этим чудом пользоваться?
|
|
|
|
SirNikolas | Дата: Суббота, 25 Августа 2012, 12:50:35 | Сообщение # 4 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Quote (Ty3uK) а не проще перевести входящую строку в верхний регистр и исключить маленткие буквы? Увы, StringCase работает исключительно с латиницей.Quote (Ty3uK) и как этим чудом пользоваться? Code void PrintAllCirillic(string s) { string result = ""; int i = 0; loop { i = GetNextCirillic(s, i) + 1; exitwhen i == 0;//Если букв больше нет, GetNextCirillic возвращает -1. result += SubString(s, i - 1, i); } printf(result); }
callback onInit() { PrintAllCirillic("З1д2р5авYстZ45ву&й, Мир!JASS2"); //output: ЗдравствуйМир }
|
|
|
|
Ty3uK | Дата: Суббота, 25 Августа 2012, 13:01:51 | Сообщение # 5 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| увы, адик как обычно начал ругаться и я написал свои костыли спасибо за помощь :3
|
|
|
|
SirNikolas | Дата: Суббота, 25 Августа 2012, 13:03:47 | Сообщение # 6 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| Да переустанови ты его уже. >_<
|
|
|
|
Ty3uK | Дата: Суббота, 25 Августа 2012, 13:05:28 | Сообщение # 7 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| на старый? в нем форов нет
|
|
|
|
SirNikolas | Дата: Суббота, 25 Августа 2012, 13:17:18 | Сообщение # 8 |
Группа: Модераторы
Сообщений: 6729
Награды: 1
Репутация: 1867
Блокировки:
| JNGP. Добавлено (25 Августа 2012, 13:17:18) ---------------------------------------------
Quote (Ty3uK) я написал свои костыли Я так понимаю, есть массив букв русского алфавита, и в нем прямым проходом ищется каждая буква строки? Если так, то мой способ может быть быстрее до 8 раз.
|
|
|
|
Ty3uK | Дата: Суббота, 25 Августа 2012, 13:31:39 | Сообщение # 9 |
Группа: Ветераны
Сообщений: 6125
Награды: 2
Репутация: 1617
Блокировки:
| я понимаю, но я юзаю это только один раз при забивании мультика так что мне сойдет, спасибо
а жнгп потом скачаю, я с телефона
|
|
|
|
bubliq | Дата: Понедельник, 27 Августа 2012, 14:26:50 | Сообщение # 10 |
2 уровень
Группа: Пользователи
Сообщений: 24
Награды: 0
Репутация: -12
Блокировки:
| Очевидно, что русские символы - не нужны.
|
|
|
|
Hexing | Дата: Понедельник, 27 Августа 2012, 15:20:37 | Сообщение # 11 |
10 уровень
Группа: Проверенные
Сообщений: 1645
Награды: 1
Репутация: 432
Блокировки:
| Quote (bubliq) Очевидно, что русские символы - не нужны. очевидно ваш пост тоже
|
|
|
|