A toolkit for working with phylogenetic data.
v0.20.0
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
string.cpp File Reference

Detailed Description

Implementation of string utility functions.

Definition in file string.cpp.

#include "genesis/utils/text/string.hpp"
#include "genesis/utils/math/common.hpp"
#include <algorithm>
#include <cctype>
#include <cstdio>
#include <iomanip>
#include <sstream>
#include <stdexcept>

Go to the source code of this file.

Namespaces

 genesis
 Container namespace for all symbols of genesis in order to keep them separate when used as a library.
 
 genesis::utils
 

Functions

bool contains_ci (std::vector< std::string > const &haystack, std::string const &needle)
 Return whether a vector of strings contains a given string, case insensitive. More...
 
size_t count_substring_occurrences (std::string const &str, std::string const &sub)
 Return the number of (possibly overlapping) occurrences of a substring in a string. More...
 
std::string deescape (std::string const &text)
 Return a string where backslash-escaped characters are transformed into their respective string form. More...
 
char deescape (char c)
 Return the de-escaped char for a backslash-escaped char. More...
 
bool ends_with (std::string const &text, std::string const &ending)
 Return whether a string ends with another string. More...
 
bool equals_ci (std::string const &lhs, std::string const &rhs)
 Compare two strings case insensitive. More...
 
std::string escape (std::string const &text)
 Return a string where special chars are replaces by their escape sequence. More...
 
std::string head (std::string const &text, size_t lines=10)
 Return the first lines of the text. More...
 
std::string indent (std::string const &text, std::string const &indentation=" ")
 Indent each line of text with indentation and return the result. More...
 
std::string repeat (std::string const &word, size_t times)
 Take a string and repeat it a given number of times. More...
 
std::string replace_all (std::string const &text, std::string const &search, std::string const &replace)
 Return a copy of a string, where all occurrences of a search string are replaced by a replace string. More...
 
std::string replace_all_chars (std::string const &text, std::string const &search_chars, char replace)
 Replace all occurrences of the search_chars in text by the replace char. More...
 
std::vector< std::string > split (std::string const &string, std::function< size_t(std::string const &, size_t)> find_pos, size_t advance_by, const bool trim_empty)
 Local function that does the work for the split cuntions. More...
 
std::vector< std::string > split (std::string const &str, std::string const &delimiters=" ", const bool trim_empty=true)
 Spilt a string into parts, given a delimiters set of chars. More...
 
std::vector< std::string > split (std::string const &str, std::function< bool(char)> delimiter_predicate, const bool trim_empty=true)
 Spilt a string into parts, given a delimiter_predicate that returns true for delimiters chars. More...
 
std::vector< std::string > split_at (std::string const &str, std::string const &delimiter, const bool trim_empty=true)
 Spilt a string into parts, given a delimiter string. More...
 
std::vector< size_t > split_range_list (std::string const &str)
 Split a string containing positive interger numbers into its parts and resolve ranges. More...
 
bool starts_with (std::string const &text, std::string const &start)
 Return whether a string starts with another string. More...
 
std::string tail (std::string const &text, size_t lines=10)
 Return the last lines of the text. More...
 
std::string to_string_leading_zeros (size_t value, size_t length=6)
 Return a string representation of a size_t value with a fixed length, that is, by adding leading zeros. More...
 
std::string to_string_precise (double value, int precision=6)
 Return a precise string representation of the input value, using the provided precision value (determining its decimal places). More...
 
std::string to_string_rounded (double value, int precision=6)
 Return a string representation of the input value, using the provided precision value (determining its decimal places) to round, and truncate trailing zeros. More...
 
std::string trim (std::string const &s, std::string const &delimiters=" \f\n\r\t\v")
 Return a copy of the input string, with trimmed white spaces. More...
 
std::string trim_left (std::string const &s, std::string const &delimiters=" \f\n\r\t\v")
 Return a copy of the input string, with right trimmed white spaces. More...
 
std::string trim_right (std::string const &s, std::string const &delimiters=" \f\n\r\t\v")
 Return a copy of the input string, with left trimmed white spaces. More...