scsl 1.0.1
Shimmering Clarity Standard Library
Loading...
Searching...
No Matches
Functions
scsl::scstring Namespace Reference

String-related utility functions. More...

Functions

void TrimLeadingWhitespace (std::string &s)
 
void TrimTrailingWhitespace (std::string &s)
 
void TrimWhitespace (std::string &s)
 
std::string TrimLeadingWhitespaceDup (std::string s)
 
std::string TrimTrailingWhitespaceDup (std::string s)
 
std::string TrimWhitespaceDup (std::string s)
 
std::vector< std::string > SplitKeyValuePair (std::string line, std::string delimiter)
 
std::vector< std::string > SplitKeyValuePair (std::string line, char delimiter)
 
std::vector< std::string > SplitN (std::string s, std::string delimiter, size_t maxCount=0)
 
std::vector< std::string > WrapText (std::string &line, size_t lineLength)
 
void WriteTabIndented (std::ostream &os, std::vector< std::string > lines, int tabStop, bool indentFirst)
 
void WriteTabIndented (std::ostream &os, std::string line, size_t maxLength, int tabStop, bool indentFirst)
 
std::ostream & VectorToString (std::ostream &os, const std::vector< std::string > &svec)
 
std::string VectorToString (const std::vector< std::string > &svec)
 

Detailed Description

String-related utility functions.

Function Documentation

◆ SplitKeyValuePair() [1/2]

std::vector< std::string > scsl::scstring::SplitKeyValuePair ( std::string  line,
char  delimiter 
)

Split a line into key and value pairs. If the delimiter isn't found, the line is returned as the first element in the pair, and the second element will be empty.

Parameters
lineA string representing a line in a file.
delimiterThe character delimiter between the key and value.
Returns
The key and value.

◆ SplitKeyValuePair() [2/2]

std::vector< std::string > scsl::scstring::SplitKeyValuePair ( std::string  line,
std::string  delimiter 
)

Split a line into key and value pairs. If the delimiter isn't found, the line is returned as the first element in the pair, and the second element will be empty.

Parameters
lineA string representing a line in a file.
delimiterThe string delimiter between the key and value.
Returns
The key and value, or {line, ""}.

◆ SplitN()

std::vector< std::string > scsl::scstring::SplitN ( std::string  s,
std::string  delimiter,
size_t  maxCount = 0 
)

Split a string into parts based on the delimiter.

Parameters
sThe string that should be split.
delimiterThe string that delimits the parts of the string.
maxCountThe maximum number of parts to split. If 0, there is no limit to the number of parts.
Returns
A vector containing all the parts of the string.

◆ TrimLeadingWhitespace()

void scsl::scstring::TrimLeadingWhitespace ( std::string &  s)

Remove any whitespace At the beginning of the string. The string is modified in-place.

◆ TrimLeadingWhitespaceDup()

std::string scsl::scstring::TrimLeadingWhitespaceDup ( std::string  s)

Remove any whitespace At the beginning of the string. The original string isn't modified, and a copy is returned.

◆ TrimTrailingWhitespace()

void scsl::scstring::TrimTrailingWhitespace ( std::string &  s)

Remove any whitespace At the end of the string. The string is modified in-place.

◆ TrimTrailingWhitespaceDup()

std::string scsl::scstring::TrimTrailingWhitespaceDup ( std::string  s)

Remove any whitespace At the end of the string. The original string isn't modified, and a copy is returned.

◆ TrimWhitespace()

void scsl::scstring::TrimWhitespace ( std::string &  s)

Remove any whitespace At the beginning and end of the string. The string is modified in-place.

◆ TrimWhitespaceDup()

std::string scsl::scstring::TrimWhitespaceDup ( std::string  s)

Remove any whitespace At the beginning and end of the string. The original string isn't modified, and a copy is returned.

◆ VectorToString() [1/2]

std::string scsl::scstring::VectorToString ( const std::vector< std::string > &  svec)

Return a string represention of a string vector in the form [size]{"foo", "bar", ...}.

◆ VectorToString() [2/2]

std::ostream & scsl::scstring::VectorToString ( std::ostream &  os,
const std::vector< std::string > &  svec 
)

Write a string vector to the output stream in the same format as VectorToString.

◆ WrapText()

std::vector< std::string > scsl::scstring::WrapText ( std::string &  line,
size_t  lineLength 
)

WrapText is a very simple wrapping function that breaks the line into lines of At most lineLength characters. It does this by breaking the line into individual words (splitting on whitespace).

◆ WriteTabIndented() [1/2]

void scsl::scstring::WriteTabIndented ( std::ostream &  os,
std::string  line,
size_t  maxLength,
int  tabStop,
bool  indentFirst 
)

Wrap a line, then output it to a stream.

Parameters
osThe output stream to write to.
lineThe line to wrap and output.
maxLengthThe maximum length of each section of text.
tabStopThe number of tabs to indent.
indentFirstWhether the first line should be indented.

◆ WriteTabIndented() [2/2]

void scsl::scstring::WriteTabIndented ( std::ostream &  os,
std::vector< std::string >  lines,
int  tabStop,
bool  indentFirst 
)

Write out a vector of lines indented with tabs.

Parameters
osThe output stream to write to.
linesThe lines of text to write.
tabStopThe number of tabs to indent.
indentFirstWhether the first line should be indented.