Добавляет большое количество новых функций для работы со строками. Все функции поддерживают упакованные строки!Функции:
Скачать:
Erase:
erase_first(string[], const find[], bool:ignorecase = false, pos = 0);Описание:erase_last(string[], const find[], bool:ignorecase = false);Вырезает первую найденную подстроку(find) из строки.Возвращает:Позицию начала подстроки в строке.Описание:erase_nth(string[], const find[], n, bool:ignorecase = false, pos = 0);Вырезает последнюю найденную подстроку(find) из строки.Возвращает:Позицию начала подстроки в строке.Описание:erase(string[], start_pos, length = cellmax);Вырезает 'n' найденных подстрокВозвращает:-1Описание:Find:Вырезает определённое количество символов, заданных в start_pos(начало) и length(количество символов).Возвращает:-1
find_first(const string[], const find[], bool:ignorecase = false, pos = 0);Описание:find_last(const string[], const find[], bool:ignorecase = false);Ищет подстроку(find) в строке.Возвращает:Позицию начала подстроки в строке, в противном случае -1Описание:find_first_of(const string[], const charlist[], pos_string = 0, size = sizeof string);Ищет последнюю найденную подстроку(find) из строки.Возвращает:Позицию начала подстроки в строке, в противном случае -1Описание:find_last_of(const string[], const charlist[]);Ищет первый попавшийся символ из массива(charlist) в строке.Возвращает:Позицию первого попавшегося символа в строке, в противном случае -1Описание:find_first_not_of(const string[], const charlist[], pos_string = 0, size = sizeof string);Ищет первый попавшийся символ из массива(charlist) с конца строки.Возвращает:Позицию первого попавшегося символа с конца строки, в противном случае -1Описание:find_last_not_of(const string[], const charlist[]);Ищет первый попавшийся символ не из массива(charlist) в строке.Возвращает:Позицию первого попавшегося символа в строке, в противном случае -1Описание:Replace:Ищет первый попавшийся символ не из массива(charlist) с конца строки.Возвращает:Позицию первого попавшегося символа в строке, в противном случае -1
replace_first(string[], const find[], const replace[], bool:ignorecase = false, pos = 0, string_size = sizeof string);Описание:replace_last(string[], const find[], const replace[], bool:ignorecase = false, pos = 0, string_size = sizeof string);Заменяет первую найденную подстроку(find) строкой(replace).Возвращает:Если строка найдена - 1, в противном случае 0.Описание:replace_nth(string[], const find[], const replace[], n, bool:ignorecase = false, pos = 0, string_size = sizeof string);Заменяет последнюю найденную подстроку(find) строкой(replace).Возвращает:Если строка найдена - 1, в противном случае 0.Описание:replace_all(string[], const find[], const replace[], bool:ignorecase = false, pos = 0, string_size = sizeof string);Заменяет 'n' найденных подстрок(find) строкой(replace).Возвращает:Если строка найдена - 1, в противном случае 0.Описание:Trim:Заменяет все подстроки(find) строкой(replace).Возвращает:Если строка найдена - 1, в противном случае 0.
trim_left(string[], const delimiter = ' ');Описание:trim_right(string[], const delimiter = ' ');Обрезает символы(delimiter) с начала строки.Возвращает:-Описание:trim(string[], const delimiter = ' ');Обрезает символы(delimiter) с конца строки.Возвращает:-Описание:trim_leftex(string[], const delimiters = !" ");Обрезает символы(delimiter) с двух сторон строки.Возвращает:-Описание:trim_rightex(string[], const delimiters = !" ");Обрезает символы(delimiters) с начала строки.Возвращает:-Описание:trim_ex(string[], const delimiters = !" ");Обрезает символы(delimiters) с конца строки.Возвращает:-Описание:Полезные:Обрезает символы(delimiter) с двух сторон строки.Возвращает:-
IsPackedString(string[]);Описание:IsEmptyString(const string[]);Определяет формат записи строки в памяти.Возвращает:Возвращает true, если строка упакована, в противном случае - falseОписание:Возвращает:strcount(const string[], const find[], bool:ignorecase = false, pos = 0, string_size = sizeof string);Возвращает true, если строка пустая, в противном случае - falseОписание:strreverse(string[]);Подсчитывает количество подстрок(find) в строке.Возвращает:Количество вложенных подстрокОписание:strparttoupper(string[], part_start, part_end, string_size = sizeof string);Переворачивает строку.Возвращает:-Описание:strparttolower(string[], part_start, part_end, string_size = sizeof string);Данная функция изменяет строчные буквы на заглавные на отдельных участках строки.Возвращает:-Описание:countofuppercase(const string[]);Данная функция изменяет заглавные на строчные буквы на отдельных участках строки.Возвращает:-Описание:countoflowpercase(const string[]);Подсчитывают количество заглавных букв в строке.Возвращает:число (процент)Описание:strtrtrans(string[]);Подсчитывают количество строчных букв в строке.Возвращает:число (процент)Описание:islowerpart(const string[], start_part_pos, end_part_pos);Переводит русские символы в транслитерацию.Возвращает:-Описание:isupperpart(const string[], start_part_pos, end_part_pos);Проверяет отдельный участок кода на наличие символов в нижним регистре.Возвращает:Возвращает true, если в отдельный участке все символы в нижним регистре, иначе false.Описание:strcatex(dest[], size, const ...);Проверяет отдельный участок кода на наличие символов в верхнем регистре.Возвращает:Возвращает true, если в отдельный участке все символы в верхнем регистре, иначе false.Описание:strfill(string[], const pattern[] = " ", fill_length, E_TDW_FILL_TYPE:type = FILL_TYPE_BOTH, size = sizeof string);Соединяет строки друг с другом по средством strcat.Возвращает:Возвращает количество символов.Описание:strimplodeex(dest[], const delimiter[] = !" ", dest_size = sizeof dest, const ...);Заполняет строку указанной подстрокой.Возвращает:Возвращает 1, если fill_length меньше чем size, иначе 0.Описание:strimplode(dest[], const arrays[][], const delimiter[] = !" ", array_items = sizeof arrays, dest_size = sizeof dest);Заполняет строки с разделителем(delimiter).Возвращает:Количество символов (без размера разделителя).Описание:strsplit(dest[], const string[], &index, const seperator = ' ');Тоже самое, что и strimplodeex, однако значения берутся из массива.Возвращает:-Описание:replace_symbol(string[], const _char, replace, pos = 0);Подобие strtok, но в более лучшем виде. Примечание: не работает с упакованными строками.Возвращает:-Описание:replace_symbols(string[], const _char, replace, pos = 0);Заменяет один символ в строке.Возвращает:-Описание:Заменяет символы в строке.Возвращает:-
githubУстановка:
#include <a_samp>
#include <tdw_string>
И в трим обычно помимо пробела ещё добавляют символы переноса строки и возврат каретки.
|
Возможно сделать для erase_nth и erase возвращать количество "вырезанных" элементов?
И некоторые функции можно объединить если использовать numarg. |
Ну например replace_nth и replace_all, find_first и find_first_of, find_last и find_last_of.
С ходу этого не сделать, нужно подумать, но сократить список на треть вполне возможно)) |
stock TDWSH@strcmp(const string1[], const string2[], bool:ignorecase=false, length = cellmax)
{
new is_empty@s1 = IsEmptyString(string1),
is_empty@s2 = IsEmptyString(string2)
;
return is_empty@s1 != 0 ? is_empty@s2 != 0 ? strcmp(string1, string2, ignorecase, length) : 1 : is_empty@s2 != 0 ? -1 : 0;
}
return variable == 100 ? true : false;
return (variable == 100 || variable == 150) ? true : false;
return is_empty@s1 != 0 ? is_empty@s2 != 0 ? strcmp(string1, string2, ignorecase, length) : 1 : is_empty@s2 != 0 ? -1 : 0;
return is_empty@s1 != 0 ? (is_empty@s2 != 0 ? strcmp(string1, string2, ignorecase, length) : 1) : (is_empty@s2 != 0 ? -1 : 0);
Надо просто скобки расставлять ((выражение) ? (если истина) : (если ложь)), чтобы не получалось вырвиглазно. Отсутствие удобочитаемости очевидно, делаю вывод, что это понты.
|