added removeTrailingWhitespace

This commit is contained in:
fluxgen 2003-10-25 22:06:53 +00:00
parent ab2d5ca0c7
commit 233a4d85f4
2 changed files with 33 additions and 19 deletions

View file

@ -19,7 +19,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
// $Id: StringUtil.cc,v 1.7 2003/09/29 14:01:48 fluxgen Exp $ // $Id: StringUtil.cc,v 1.8 2003/10/25 22:06:53 fluxgen Exp $
#include "StringUtil.hh" #include "StringUtil.hh"
@ -38,9 +38,9 @@ namespace FbTk {
namespace StringUtil { namespace StringUtil {
/** /**
Takes a pointer to string *s as an argument, Takes a pointer to string *s as an argument,
creates a new string n, copies s to n and creates a new string n, copies s to n and
returns a pointer to n. returns a pointer to n.
*/ */
char *strdup(const char *s) { char *strdup(const char *s) {
int l = strlen(s) + 1; int l = strlen(s) + 1;
@ -50,9 +50,9 @@ char *strdup(const char *s) {
} }
/** /**
Tries to find a string in another and Tries to find a string in another and
ignoring the case of the characters ignoring the case of the characters
Returns 0 on success else pointer to str. Returns 0 on success else pointer to str.
*/ */
const char *strcasestr(const char *str, const char *ptn) { const char *strcasestr(const char *str, const char *ptn) {
const char *s2, *p2; const char *s2, *p2;
@ -70,8 +70,8 @@ const char *strcasestr(const char *str, const char *ptn) {
} }
/** /**
if ~ then expand it to home of user if ~ then expand it to home of user
returns expanded filename returns expanded filename
*/ */
string expandFilename(const std::string &filename) { string expandFilename(const std::string &filename) {
string retval; string retval;
@ -89,7 +89,7 @@ string expandFilename(const std::string &filename) {
} }
/** /**
@return string from last "." to end of string @return string from last "." to end of string
*/ */
string findExtension(const std::string &filename) { string findExtension(const std::string &filename) {
//get start of extension //get start of extension
@ -101,14 +101,14 @@ string findExtension(const std::string &filename) {
} }
/** /**
Parses a string between "first" and "last" characters Parses a string between "first" and "last" characters
and ignoring ok_chars as whitespaces. The value is and ignoring ok_chars as whitespaces. The value is
returned in "out". returned in "out".
Returns negative value on error and this value is the position Returns negative value on error and this value is the position
in the in-string where the error occured. in the in-string where the error occured.
Returns positive value on success and this value is Returns positive value on success and this value is
for the position + 1 in the in-string where the "last"-char value for the position + 1 in the in-string where the "last"-char value
was found. was found.
*/ */
int getStringBetween(std::string& out, const char *instr, const char first, const char last, int getStringBetween(std::string& out, const char *instr, const char first, const char last,
const char *ok_chars, bool allow_nesting) { const char *ok_chars, bool allow_nesting) {
@ -185,6 +185,19 @@ string::size_type removeFirstWhitespace(std::string &str) {
return first_pos; return first_pos;
} }
string::size_type removeTrailingWhitespace(std::string &str) {
// strip trailing whitespace
string::size_type first_pos = str.find_first_not_of(" \t");
if (first_pos != string::npos) {
string::size_type last_pos = str.find_first_of(" \t", first_pos);
while (last_pos != string::npos) {
str.erase(last_pos);
last_pos = str.find_first_of(" \t", last_pos);
}
}
}
}; // end namespace StringUtil }; // end namespace StringUtil
}; // end namespace FbTk }; // end namespace FbTk

View file

@ -19,7 +19,7 @@
// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
// DEALINGS IN THE SOFTWARE. // DEALINGS IN THE SOFTWARE.
//$Id: StringUtil.hh,v 1.6 2003/09/29 14:01:48 fluxgen Exp $ //$Id: StringUtil.hh,v 1.7 2003/10/25 22:06:53 fluxgen Exp $
#ifndef FBTK_STRINGUTIL_HH #ifndef FBTK_STRINGUTIL_HH
#define FBTK_STRINGUTIL_HH #define FBTK_STRINGUTIL_HH
@ -57,6 +57,7 @@ std::string basename(const std::string &basename);
/// removes the first whitespace characters of the string /// removes the first whitespace characters of the string
std::string::size_type removeFirstWhitespace(std::string &str); std::string::size_type removeFirstWhitespace(std::string &str);
std::string::size_type removeTrailingWhitespace(std::string &str);
/// Breaks a string into tokens /// Breaks a string into tokens
template <typename Container> template <typename Container>