【发布时间】:2012-10-22 14:37:24
【问题描述】:
string s = "0123456789";
cout<<s.substr(0,4)<<endl;
cout<<s.substr(4,7)<<endl;
上述代码行的输出非常出乎意料,s.substr(0,4) 给了我“0123”,s.substr(4,7) 给了我“456789”。它只期待 "456" 。我在这里遗漏了什么吗,是否有任何替代 C++ 中的 substr 函数的方法,这在第二次调用时只会给我“456”。
【问题讨论】:
-
这绝对是骗子,但我找不到。
-
@JohnDibling 这一个是完全相同的问题:stackoverflow.com/questions/2477850/…我会投票关闭作为重复。
-
@jogojapan:这不是我想要的,但它会做。
-
@jogojapan:我还是得到了答案。所以谢谢。
-
@JohnDibling:无意冒犯,问题很简单,没有人愿意看 jogojapan 建议的复杂示例。所以,我要求把这个例子留在这里,substr()函数的用法乍一看并不明显。