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
}
本文介绍了一种使用C++实现的字符串两端空白字符修剪的方法,包括左端和右端的独立修剪。通过直接操作字符串迭代器,实现了高效去除空白字符的功能。
8695

被折叠的 条评论
为什么被折叠?



