用std::string做字符串处理?

ibelieveicandie 2004-06-21 02:52:01
想实现MFC中CString类的Trim(), Left(), Right(), Mid()等功能,是不是只有自己写代码实现?有没有现成的方法库?

先行谢过
...全文
164 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
Soundboy 2004-09-20
  • 打赏
  • 举报
回复
mk
ibelieveicandie 2004-06-22
  • 打赏
  • 举报
回复
结贴。
我的trim现在是这样写的:
template <typename CHARTYPE> std::basic_string<CHARTYPE> StrTrim(const std::basic_string<CHARTYPE> &str)
{
std::basic_string<CHARTYPE> s = str;
CHARTYPE whitechars[] = {' ', '\t', '\r', '\n', 0};

// trim trailing
const std::string::size_type end = s.find_last_not_of(whitechars);
if (end != std::string::npos) s.resize(end + 1);
// trim leading
const std::string::size_type begin = s.find_first_not_of(whitechars);
if (begin != std::string::npos) s.erase(0, begin);

if (begin == std::string::npos)
s.clear();

return s;
}
yjh1982 2004-06-22
  • 打赏
  • 举报
回复
substr呀真不错,又简洁又直观.我们都用它:)
Mephisto_76 2004-06-22
  • 打赏
  • 举报
回复
同意一楼的。
ibelieveicandie 2004-06-21
  • 打赏
  • 举报
回复
有没有现成的库做这件事情呢?
qwertasdfg123 2004-06-21
  • 打赏
  • 举报
回复
可能也只有substr 了。
Wolf0403 2004-06-21
  • 打赏
  • 举报
回复
<string> + <iomanip> + <sstream> + <cctype> 凑合用用吧。。。
darkstar21cn 2004-06-21
  • 打赏
  • 举报
回复
stl钟只有 substr (),所以别的都可以用这个函数很容易的实现。
str.left (len) = stdstr.substr (0, len)
str.right (len) = stdstr.substr (stdstr.size () - len)
str.mid (l, r) = stdstr.substr (0, r).substr (l)
str.trim ()就比较烦一些,但也不难呀

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧