void Trim(string &str)
{
TrimLeft(str);
TrimRight(str);
}
void TrimLeft(string &str)
{
if (str.empty())
{
return;
}
string::const_iterator ch = str.begin();
while (' ' == *ch || '\r' == *ch || '\n' == *ch || '\t' == *ch || '\f' == *ch)
{
str.erase(0, str.find_first_not_of(*ch));
ch = str.begin();
}
}
void TrimRight(string &str)
{
if (str.empty())
{
return;
}
string::const_iterator ch = str.end() - 1;
while (' ' == *ch || '\r' == *ch || '\n' == *ch || '\t' == *ch || '\f' == *ch)
{
str.erase(str.find_last_not_of(*ch) + 1);
ch = str.end() - 1;
}
}
void Trim(char *str)
{
size_t size = strlen(str);
string s = string(str, size);
TrimLeft(s);
TrimRight(s);
memset(str, 0, size);
#ifdef Windows // Windows
strcpy_s(str, size, s.c_str());
#else
strcpy(str, s.c_str());
#endif
}
void TrimLeft(char *str)
{
size_t size = strlen(str);
string s = string(str, size);
TrimLeft(s);
memset(str, 0, size);
#ifdef Windows // Windows
strcpy_s(str, size, s.c_str());
#else
strcpy(str, s.c_str());
#endif
}
void TrimRight(char *str)
{
size_t size = strlen(str);
string s = string(str, size);
TrimRight(s);
memset(str, 0, size);
#ifdef Platform_Windows // Windows
strcpy_s(str, size, s.c_str());
#else
strcpy(str, s.c_str());
#endif
}