C++字串剔除首尾不可見字元
阿新 • • 發佈:2019-01-31
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 }