加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
str.cc 1.29 KB
一键复制 编辑 原始数据 按行查看 历史
jin 提交于 2024-07-15 16:06 . add demos
#include <iostream>
#include <string>
#include <algorithm>
#include <locale>
#include <functional>
static inline std::string& ltrim(std::string& s)
{
s.erase(s.begin(), std::find_if(s.begin(), s.end(),
[](int c) { return !std::isspace(c); }));
return s;
}
static inline std::string& rtrim(std::string& s)
{
s.erase(std::find_if(s.rbegin(), s.rend(),
[](int c) { return !std::isspace(c); }).base(), s.end());
return s;
}
static inline std::string& trim(std::string& s)
{
return ltrim(rtrim(s));
}
int main (int argc, char *argv[]) {
std::string s = " \n\r\t Hello \r\t\n\n World \n\r\t ";
std::cout << "Before: " << s << " len: " << s.length() << std::endl;
std::string xxx = trim(s);
std::cout << "After trim: " << xxx << std::endl;
int a = s.find('\n') != std::string::npos;
int b = s.find('\r') != std::string::npos;
std::cout << "a: " << a << ", b: " << b << std::endl;
s.erase(std::remove_if(s.begin(),
s.end(),
std::bind(std::isspace<char>, std::placeholders::_1, std::locale::classic())),
s.end());
std::cout << "After: " << s << " len: " << s.length() << std::endl;
std::cout << "" << std::string("\r").length() << std::endl;
return 0;
}
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化