From: <sv...@ww...> - 2005-06-12 03:22:51
|
Author: mkrose Date: 2005-06-11 20:22:42 -0700 (Sat, 11 Jun 2005) New Revision: 1564 Modified: trunk/CSP/SimCore/Util/StringTools.cpp trunk/CSP/SimCore/Util/StringTools.h Log: Add string utility functions for trimming whitespace. Browse at: https://www.zerobar.net/viewcvs/viewcvs.cgi?view=rev&rev=1564 Modified: trunk/CSP/SimCore/Util/StringTools.cpp =================================================================== --- trunk/CSP/SimCore/Util/StringTools.cpp 2005-06-12 03:20:39 UTC (rev 1563) +++ trunk/CSP/SimCore/Util/StringTools.cpp 2005-06-12 03:22:42 UTC (rev 1564) @@ -46,3 +46,18 @@ } } +std::string TrimString(std::string const &str, std::string const &chars) { + const std::string::size_type begin = str.find_first_not_of(chars); + const std::string::size_type end = str.find_last_not_of(chars); + return begin == std::string::npos ? "" : str.substr(begin, (1 + end) - begin); +} + +std::string LeftTrimString(std::string const &str, std::string const &chars) { + const std::string::size_type begin = str.find_first_not_of(chars); + return begin == std::string::npos ? "" : str.substr(begin); +} + +std::string RightTrimString(std::string const &str, std::string const &chars) { + const std::string::size_type end = str.find_last_not_of(chars); + return end == std::string::npos ? "" : str.substr(0, end + 1); +} Modified: trunk/CSP/SimCore/Util/StringTools.h =================================================================== --- trunk/CSP/SimCore/Util/StringTools.h 2005-06-12 03:20:39 UTC (rev 1563) +++ trunk/CSP/SimCore/Util/StringTools.h 2005-06-12 03:22:42 UTC (rev 1564) @@ -48,6 +48,15 @@ StringTokenizer(const std::string &str, const std::string &delimiters = " ,\n"); }; +/** Remove leading and trailing whitespace, or other characters if specified. */ +std::string TrimString(std::string const &str, std::string const &chars = " \n\r\t"); +/** Remove leading whitespace, or other characters if specified. */ +std::string LeftTrimString(std::string const &str, std::string const &chars = " \n\r\t"); + +/** Remove trailing whitespace, or other characters if specified. */ +std::string RightTrimString(std::string const &str, std::string const &chars = " \n\n\t"); + + #endif // __SIMCORE_UTIL_STRINGTOOLS_H__ |