/*
 * Copyright (c) 2007-2009 by Oleg Trifonov <otrifonow@gmail.com>
 *
 * This file is free software; you can redistribute it and/or modify
 * it under the terms of either the GNU General Public License version 2
 * or the GNU Lesser General Public License version 2.1, both as
 * published by the Free Software Foundation.
 */

#ifndef _TR_STRITILS_H_
#define _TR_STRITILS_H_

#include "trTypes.h"

#include <string>


// удаляет начальные и конечные символы пустого пространства в строке
std::string Trim(const std::string &aStr);

// возвращает расширение файла (без точки)
std::string ExtractFileExt(const std::string str);

// переводит строку в нижний регистр
std::string StrLower(const std::string &str);

// переводит строку в верхний регистр
std::string StrUpper(const std::string &str);

// возвращает число слов с указанным разделителем в строке
UInt32 WordCount(const std::string &str, const std::string &wordDelims);

// возвращает позицию слова в строке
UInt32 WordPosition(const UInt32 n, const std::string &str, const std::string &wordDelims);

// возвращает указанное слово из строки по номеру
std::string ExtractWord(const UInt32 n, const std::string &str, const std::string &wordDelims);




// проверяет, что строка является представлением целого
bool VerifyInt(const std::string &str);

// конвертирует строку в целое
int StrToInt(const std::string &str);

// возвращает строковое представление целого
std::string IntToStr(int v);

// проверяет, что строка является представлением вещественного числа
bool VerifyFloat(const std::string &str);

// конвертирует строку в вещественное число
double StrToFloat(const std::string &str);

// возвращает строковое представление вещественного числа. precesion определяет 
// количество знаков после десятичной точки
std::string FloatToStr(double v, Byte precesion);

#endif // _TR_STRITILS_H_