返回信息流std::string bb="<title>请勿带着有色眼镜看动画片_新浪大视野_新闻论坛_新浪网</title>";
std::cout<<bb.substr(7,bb.length()-8);
我希望的输出是“请勿带着有色眼镜看动画片_新浪大视野_新闻论坛_新浪网”。
但真正的输出是“请勿带着有色眼镜看动画片_新浪大视野_新闻论坛_新浪网</title”。
如果改成bb.substr(7,bb.length()-15)就是我希望的输出了,不知道这是啥原因?
单步调试的时候发现了两个东西,一个是_Mysize为66(正好就是该字符串的长度),一个是_Myres为79(不知道这是啥?查了一下好像说是string类每次都有预留的内存)。如图:
求大牛解惑!!
[ema11]
这是一条镜像帖。来源:北邮人论坛 / cpp / #73801同步于 2013/9/21
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于substr的小问题!
xxxyyy1133
2013/9/21镜像同步4 回复
订阅后,新回复会通过你的通知中心匿名送达。
4 条回复
还真是。。[ema1]
想问一下那个Myres咋理解啊?
【 在 gaoweiwei 的大作中提到: 】
: 提取字符串,第二个参数是要提取的字符串的长度,等于字符串长度-开头的<title> 7字节-末尾的</title> 8字节
没必要知道,std::string的public interface里没有_Myres
如果你想知道的话,读代码,或者根据名称猜一下my reserve
【 在 xxxyyy1133 的大作中提到: 】
: 还真是。。
: 想问一下那个Myres咋理解啊?