为了账号安全,请及时绑定邮箱和手机立即绑定

删除字符串内空格的函数(iterator迭代 和find函数)求释义

删除字符串内空格的函数(iterator迭代 和find函数)求释义

C++
gd5178 2015-07-31 22:32:55
string trimspace(string str) { string::iterator it = str.begin(); while ((it=find(it, str.end(), ' '))!=str.end()) { str.erase(it); if (it == str.end())  { break; } } return str; }这是我在网上找的删除字符串内所有空格的一个函数,觉得很有用,想把它理解透彻,但苦于初学,看string库函数确实恼火,求大神给函数内的语句逐句释义一下,特别是“iterator it = str.begin()”和“while ((it=find(it, str.end(), ' '))!=str.end())”,定义it的意义是什么?while循环的判断条件怎么解释?在网上找半天资料也没理解清楚。
查看完整描述

1 回答

?
米拉小胖子

TA贡献6条经验 获得超0个赞

iterator it = str.begin() //定义一个迭代器指向str的第一个字符
while ((it = find(it, str.end(), ' ')) != str.end()) // 用find函数葱it到str.end()里查//找有没有空格, 有空格就执行while里的句子,同时find返回查找到的指向空格的迭代器  str.end()指向str最后一个字符的后面一个位置  
//我觉得你有必要先看一下容器和迭代器  勿在浮沙筑高台
查看完整回答
反对 回复 2015-09-12
  • 1 回答
  • 0 关注
  • 1324 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信