gpt4 book ai didi

c++ - 在 C++ 中访问 std::string 时出现 std::out_of_range 错误

转载 作者:太空宇宙 更新时间:2023-11-04 14:38:09 24 4
gpt4 key购买 nike

我是一个由三名中等能力的程序员组成的团队的一员,我们目前正在尝试用 C++ 编写一个程序来体现我们的新加密算法。但是,我们遇到了一个错误,表明我们在某个时候超过了字符串的长度。我自己试过调试这个,但我没有运气。它在 jumble() 函数中,但是......

无论如何,这里有一个带有临时 main() 函数的源代码粘贴: http://pastebin.com/GvvYAsKg

编译正常,但运行时出现如下错误:

terminate called after throwing an instance of 'std::out_of_range'
what(): basic_string::substr Aborted

最佳答案

您的问题之一在于此行:

for(int i = 0; i < ( inPT.length() + 1 ); i++)

这意味着您将尝试访问 inPT[inPT.length],它超出字符串末尾一个字符。你要

for(int i = 0; i < inPT.length(); i++)

或者可能使用更惯用的 C++ 构造,例如 std::for_each,这样您就不会犯这种 fencepost 错误。如评论中所述,在调试器中运行它会很快向您指出这一点。

关于c++ - 在 C++ 中访问 std::string 时出现 std::out_of_range 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16365609/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com