Newer
Older
* Copyright (c) 2012, OpenGeoSys Community (http://www.opengeosys.org)
* Distributed under a Modified BSD License.
* See accompanying file LICENSE.txt or
* http://www.opengeosys.com/LICENSE.txt
*
*
* \file StringTools.h
*
* Created on 2010-06-16 by Thomas Fischer
*/
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#ifndef STRINGTOOLS_H
#define STRINGTOOLS_H
#include <string>
#include <list>
#include <sstream>
#include <fstream>
#include <iostream>
#include <ctype.h>
/**
* Splits a string into a list of strings.
* \param str String to be splitted
* \param delim Character indicating that the string should be splitted
* \return
*/
std::list<std::string> splitString(const std::string &str, char delim);
/**
* Replaces a substring with another in a string
* \param searchString Search for this string
* \param replaceString Replace with this string
* \param stringToReplace Search and replace in this string
* \return The modified string
*/
std::string replaceString(const std::string &searchString, const std::string &replaceString, std::string stringToReplace);
/**
* Converts a number (double, float, int, ...) into a string
* \param d The number to be converted
* \return The number as string
*/
template<typename T> std::string number2str(T d)
{
std::stringstream out;
out << d;
return out.str();
}
/**
* Converts a string into a number (double, float, int, ...)
* Example: std::size_t number (str2number<std::size_t> (str));
* \param str string to be converted
* \return the number
*/
template<typename T> T str2number (const std::string &str)
{
std::stringstream strs (str, std::stringstream::in | std::stringstream::out);
T v;
strs >> v;
return v;
}
/**
* Strip whitespace (or other characters) from the beginning and end of a string.
*/
void trim(std::string &str, char ch=' ');
Karsten Rink
committed
namespace BaseLib {
/**
* Extract the filename from a path
*/
std::string getFileNameFromPath(const std::string &str, bool with_extension = false);
/**
* Checks if file_name already contains a qualified path and if not copies the path from source.
*/
std::string copyPathToFileName(const std::string &file_name, const std::string &source);
/**
* extracts the path of a fully qualified path name of the file
* @param fname [input] the fully qualified path name of the file
* @param path [output] the path of the fully qualified path name of the file
*/
void extractPath (std::string const& fname, std::string& path);
} // end namespace BaseLib
void correctScientificNotation(std::string filename, std::size_t precision = 0);
#endif
#endif //STRINGTOOLS_H