我在 C++ "out_of_range at memory location"有问题
i have a problem "out_of_range at memory location" in c++
#include<iostream>
#include<string>
using namespace std;
int main()
{
string pumbaTheString;
getline(cin, pumbaTheString);
int indexs[3];
for (int i = 0; i < 3; ++i)
{
indexs[i] = pumbaTheString.find(" ");
pumbaTheString.replace(indexs[i], 1, "*");
}
cout << pumbaTheString << endl;
pumbaTheString.replace(indexs[2] + 1, (pumbaTheString.length() - indexs[2]), "#!!@1234");
cout << pumbaTheString<<endl;
for (int i = 0; i < 3 ; ++i)
{
pumbaTheString = pumbaTheString.substr((indexs[i] - indexs[i - 1]), pumbaTheString.length());//here its did the problem
cout << pumbaTheString << endl;
}
system("pause");
return 0;
}
项目1.exe中0x75CCAD12处未处理的异常: Microsoft C++例外:内存位置 0x0073F614 处的 std::out_of_range。发生
在for
循环的第一次迭代中,您正在尝试获取indexs[i - 1] == indexs[-1]
元素。数组索引从 0 开始,禁止使用负值。您需要为第一次迭代添加一些特殊处理,例如:
for (int i = 0; i < 3 ; ++i)
{
if(i == 0)
{
// special handling
}
else
{
pumbaTheString = pumbaTheString.substr((indexs[i] - indexs[i - 1]), pumbaTheString.length());//here its did the problem
}
cout << pumbaTheString << endl;
}
相关文章:
- 我似乎对if/else的基本语句有问题:/
- 我在范围内未声明的错误类有问题
- 我的C++语言蛮力算法有问题
- 我关于函数"Assert"的C++代码有问题
- 标准对此指向成员函数类型模板参数有何说明?是我的代码有误,还是 MSVS 16.6 有问题?
- C++类中的友元函数有问题?
- 我对数组即 0x6dfe78 有问题
- 我对 std::unique(算法)C++有问题
- 使用 fstream 库并在屏幕上打印的文件有问题?
- 这个模板为什么有问题?如何正确编译
- 我对 MyGraph 属性顶点名称和边权重有问题
- delete[]有问题,如何部分删除内存
- 在C++中使用exit()退出程序有问题吗
- 跳转到if(false)块有问题吗
- 查找有问题的宏
- 使用 rand() 和 srand() 有问题
- C++ 回文程序总是给出 0(假)作为输出问题;我的代码哪里有问题?
- 我在 C++ "out_of_range at memory location"有问题
- 我在 c++ 中的 AES 代码有问题。明文正在更改,但加密邮件是相同的。我找不到我的错误
- 标头中的模板规范有问题