ComSDK
 Указатель Классы Пространства имен Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Группы Страницы
Функции
Пространство имен com::str

Средства для работа со строками. Подробнее...

Функции

template<class SomeType >
std::string toString (SomeType p_value)
 
template<>
MAC_DLLEXPORT std::string toString (bool p_value)
 
template<class SomeType >
SomeType fromString (const std::string &p_str, bool *p_ok=0)
 
template<>
MAC_DLLEXPORT bool fromString< bool > (const std::string &p_str, bool *p_ok)
 
MAC_DLLEXPORT bool removeComments (const std::string &p_source_str, const std::string &p_comment_separator, std::string &o_dest_str)
 
MAC_DLLEXPORT std::string trim (std::string p_str, std::string p_whitespaces=" \t\n\r")
 
MAC_DLLEXPORT std::string ltrim (std::string p_str, std::string p_whitespaces=" \t\n\r")
 
MAC_DLLEXPORT std::string rtrim (std::string p_str, std::string p_whitespaces=" \t\n\r")
 
MAC_DLLEXPORT std::string replaceAll (const std::string &p_str, const std::string &p_from, const std::string &p_to)
 
MAC_DLLEXPORT bool paramValueSplit (const std::string &p_pair, const std::string &p_delimeter, std::string &o_param, std::string &o_value)
 
MAC_DLLEXPORT bool paramValueSplit (const std::string &p_pair, char p_delimeter, std::string &o_param, std::string &o_value)
 
MAC_DLLEXPORT std::vector
< std::string > 
split (const std::string &p_str, char p_delimeter)
 
MAC_DLLEXPORT std::map
< std::string, std::string > 
doubleSplit (const std::string &str, char macroDelimeter, char microDelimiter)
 
MAC_DLLEXPORT std::string join (const std::string &p_delimeter, const std::vector< std::string > &p_strings)
 
MAC_DLLEXPORT int countSymbols (const std::string &p_str)
 

Подробное описание

Средства для работа со строками.

Средства для форматирования строк и конверсию из строк в различные типы и обратно.

Необходимо сделать:
Требуется создать обобщенный вариант преобразования объектов в строки, аналогичный str() в питоне

Функции

int com::str::countSymbols ( const std::string &  p_str)

Возвращает число символов в C-строке (для кириллицы оно может отличаться от кодировке к кодировке)

Аргументы
[in]p_strИсходная строка
Возвращает
число символов
std::map< std::string, std::string > com::str::doubleSplit ( const std::string &  str,
char  macroDelimeter,
char  microDelimiter 
)

Разбивает строку вида "smth=smth, smth=smth, smth=smth" на словарь.

Аргументы
[in]strИсходная строка
[in]macroDelimeterРазделитель пар между друг другом
[out]microDelimeterРазделитель внутри пары
template<class SomeType >
SomeType com::str::fromString ( const std::string &  p_str,
bool *  p_ok = 0 
)

Конвертирует строку в некоторое значение. Поддерживаются почти все встроенные типы

Пример использования: sa2::chr::fromString<bool>("true")

template<>
MAC_DLLEXPORT bool com::str::fromString< bool > ( const std::string &  p_str,
bool *  p_ok 
)

Явная специализация функции sa2::chr::fromString для bool

std::string com::str::join ( const std::string &  p_delimeter,
const std::vector< std::string > &  p_strings 
)

Склеивает вектор строк, разделяя их заданным разделителем

std::string com::str::ltrim ( std::string  p_str,
std::string  p_whitespaces = " \t\n\r" 
)

Удаляет пробелы слева в строке

Аргументы
[in]p_strИсходная строка, которая будет изменена
Возвращает
Строка без пробелов в начале
bool com::str::paramValueSplit ( const std::string &  p_pair,
const std::string &  p_delimeter,
std::string &  o_param,
std::string &  o_value 
)

Разбивает пару param=value на отдельные строки param и value

Аргументы
[in]p_pairИсходная строка
[in]p_delimeterРазделитель между param и value
[out]o_paramСтрока, содержащая параметр
[out]o_valueСтрока, содержащая значение
Возвращает
true, если не произошло ошибок
Необходимо сделать:
Переименовать, эта функция разбивает строку на две подстроки по разделителю
bool com::str::paramValueSplit ( const std::string &  p_pair,
char  p_delimeter,
std::string &  o_param,
std::string &  o_value 
)

Перегрузка функции sa2::chr::param_value_split для char p_delimeter

bool com::str::removeComments ( const std::string &  p_source_str,
const std::string &  p_comment_separator,
std::string &  o_dest_str 
)

Удаляет комментарии из строки

Аргументы
[in]p_source_strИсходная строка с комментарием
[in]p_comment_separatorРазделитель комментария
[out]o_dest_strВозвращаемая строка без комментария и разделителя
Возвращает
true, если не произошло ошибок
std::string com::str::replaceAll ( const std::string &  p_str,
const std::string &  p_from,
const std::string &  p_to 
)

Заменяет все вхождения подстроки в указанной строке

Аргументы
[in]p_strИсходная строка
[in]p_fromПодстрока для поиска
[in]p_toСтрока, на которую будут заменены все найденные подстроки
Возвращает
Измененная строка
std::string com::str::rtrim ( std::string  p_str,
std::string  p_whitespaces = " \t\n\r" 
)

Удаляет пробелы справа в строке

Аргументы
[in]p_strИсходная строка, которая будет изменена
Возвращает
Строка без пробелов в конце
MAC_DLLEXPORT std::vector< std::string > com::str::split ( const std::string &  p_str,
char  p_delimeter 
)

Разбивает строку на список подстрок по заданному разделителю

Аргументы
[in]p_strИсходная строка
[in]p_delimeterРазделитель между param и value
[out]o_outputСписок подстрок
Возвращает
true, если не произошло ошибок
template<class SomeType >
std::string com::str::toString ( SomeType  p_value)

Конвертирует некоторое значение в строку. Поддерживаются почти все встроенные типы

template<>
MAC_DLLEXPORT std::string com::str::toString ( bool  p_value)

Явная специализация функции sa2::chr::toString для bool

std::string com::str::trim ( std::string  p_str,
std::string  p_whitespaces = " \t\n\r" 
)

Удаляет указанные символы слева и справа в строке

Аргументы
[in]p_strИсходная строка, которая будет изменена
[in]p_whitespacesСтрока символов, которые необходимо удалить
Возвращает
Строка без пробелов в начале и конце