cprover
string_utils.h File Reference
#include <iosfwd>
#include <string>
#include <vector>
Include dependency graph for string_utils.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

std::string strip_string (const std::string &s)
 Remove all whitespace characters from either end of a string. More...
 
void split_string (const std::string &s, char delim, std::vector< std::string > &result, bool strip=false, bool remove_empty=false)
 Given a string s, split into a sequence of substrings when separated by specified delimiter. More...
 
void split_string (const std::string &s, char delim, std::string &left, std::string &right, bool strip=false)
 
std::vector< std::string > split_string (const std::string &s, char delim)
 
std::string trim_from_last_delimiter (const std::string &s, const char delim)
 
template<typename Stream , typename It , typename Delimiter >
Stream & join_strings (Stream &os, const It b, const It e, const Delimiter &delimiter)
 Prints items to an stream, separated by a constant delimiter. More...
 
std::string escape (const std::string &)
 Generic escaping of strings; this is not meant to be a particular programming language. More...
 
void replace_all (std::string &, const std::string &, const std::string &)
 Replace all occurrences of a string inside a string. More...
 

Function Documentation

◆ escape()

std::string escape ( const std::string &  )

Generic escaping of strings; this is not meant to be a particular programming language.

Definition at line 137 of file string_utils.cpp.

Referenced by lispexprt::expr2string(), and format_rec().

◆ join_strings()

template<typename Stream , typename It , typename Delimiter >
Stream& join_strings ( Stream &  os,
const It  b,
const It  e,
const Delimiter &  delimiter 
)

Prints items to an stream, separated by a constant delimiter.

Template Parameters
ItAn iterator type
DelimiterA delimiter type which supports printing to ostreams
Parameters
osAn ostream to write to
bIterator pointing to first item to print
eIterator pointing past last item to print
delimiterObject to print between each item in the iterator range
Returns
A reference to the ostream that was passed in

Definition at line 48 of file string_utils.h.

Referenced by unwrap_exception().

◆ replace_all()

void replace_all ( std::string &  str,
const std::string &  from,
const std::string &  to 
)

Replace all occurrences of a string inside a string.

Parameters
[out]strstring to search
fromstring to replace
tostring to replace with Copyright notice: Attributed to Gauthier Boaglio Source: https://stackoverflow.com/a/24315631/7501486 Used under MIT license

Definition at line 160 of file string_utils.cpp.

◆ split_string() [1/3]

void split_string ( const std::string &  s,
char  delim,
std::vector< std::string > &  result,
bool  strip,
bool  remove_empty 
)

Given a string s, split into a sequence of substrings when separated by specified delimiter.

Parameters
sThe string to split up
delimThe character to use as the delimiter
[out]resultThe sub strings. Must be empty.
stripIf true, strip_string will be used on each element, removing whitespace from the beginning and end of each element
remove_emptyIf true, all empty-string elements will be removed. This is applied after strip so whitespace only elements will be removed if both are set to true

Definition at line 48 of file string_utils.cpp.

References INVARIANT, PRECONDITION, size_type(), and strip_string().

Referenced by generate_function_bodies_factory(), gcc_versiont::get(), parse_caller_callee(), replace_callst::parse_replacement_list(), unwindsett::parse_unwindset(), configt::set_classpath(), split_string(), and unwrap_exception().

◆ split_string() [2/3]

void split_string ( const std::string &  s,
char  delim,
std::string &  left,
std::string &  right,
bool  strip = false 
)

Definition at line 99 of file string_utils.cpp.

References PRECONDITION, and split_string().

◆ split_string() [3/3]

std::vector<std::string> split_string ( const std::string &  s,
char  delim 
)

Definition at line 119 of file string_utils.cpp.

References split_string().

◆ strip_string()

std::string strip_string ( const std::string &  s)

Remove all whitespace characters from either end of a string.

Whitespace in the middle of the string is left unchanged

Parameters
sthe string to strip
Returns
The stripped string

Definition at line 20 of file string_utils.cpp.

References size_type().

Referenced by find_pattern(), and split_string().

◆ trim_from_last_delimiter()

std::string trim_from_last_delimiter ( const std::string &  s,
const char  delim 
)

Definition at line 126 of file string_utils.cpp.

Referenced by java_class_to_package().