c++ Primer中文4版 习题难点解释
来源:互联网 发布:单片机1602引脚图 编辑:程序博客网 时间:2024/06/08 03:36
1、(习题9.35)使用迭代器寻找和删除string对象中所有的大写字符
分析:主要考虑首字母是否为大写字母。否则会出现不可预知的中段错误
原错误代码:
string str="My name is WangPeiyong! Hello World!!";
string::iterator iter=str.begin();
while(iter!=str.end())
{
if (isupper(*iter)==true)
{
str.erase(*iter);
--iter;
}
else
iter++;
}
for (string::iterator it=str.begin();it!=str.end();++it)
{
cout<<*it;
}
cout<<endl;
调试不成功,出现中断错误 out of range
改正代码:
string str="My name is WangPeiyong! Hello World!!";
string::iterator iter=str.begin();
while(iter!=str.end())
{
if (isupper(*iter))
{
if (iter==str.begin())
{
str.erase(iter);
}
else
{
str.erase(iter);
--iter;
}
}
else
{
++iter;
}
}
主要是考虑了首字母为大写的情况,若情况成立,删除首字母后,--iter完成后地址不可预知故出现错误。
- c++ Primer中文4版 习题难点解释
- C++Primer中文(第五版)习题答案(英文)
- C++primer难点之类
- C++primer中文版第4版 习题解答
- C Primer Plus(第五版) 第十四章 课后习题 4
- c++primer(第四版)习题10.18
- C++Primer第三版0316习题
- C++Primer第三版习题0325
- C++Primer第三版习题0326
- C++Primer第三版习题0413
- 《c++primer(第四版)》习题8.6
- 《c++primer(第四版)》习题8.7
- 《c++primer(第四版)》习题8.9
- 《c++primer(第四版)》习题8.16
- 《c++primer(第四版)》习题11.9
- 《c++primer(第四版)》习题11.10
- 《c++primer(第四版)》习题11.14
- 《c++primer(第四版)》习题11.15
- 数据结构算法2.2 链表的合并
- 字典
- malloc/free和new/delete的区别
- replace和replaceAll的区别
- wxWidgets滚动窗口绘图总结
- c++ Primer中文4版 习题难点解释
- 表单(form)
- KMP新理解
- Framework 3.5 安装失败的解决方案
- 读书计划
- 深入理解C#的装箱和拆箱
- Meego针对Nokia N900/N950/N9社区版发布
- Servlet的细节
- vc++学习精髓(收集,整理)