Я ищу подстроку в тексте. Если эта строка мне подходит, то я посимвольно переношу из текста слово в переменную temp. Но в определенный момент там какие-то проблемы с памятью, строка не хочет записывать новые символы в какой-то момент с ошибкой out of range. Почему вылетает эта ошибка, почему я не могу записать посимвольно в string?
#include <iostream>
#include <string>
#include <vector>
using namespace std;
int main() {
vector<string>a;
string text;
string sub;
cout << "Enter text: " << endl;
getline(cin, text);
cout << "Enter subtext: " << endl;
getline(cin, sub);
string temp = " ";
int flag;
cout << text.length();
for (int i = 0; i < text.length(); i++)
{
flag = 1;
if (text[i] != ' ' && text[i] != ',' && text[i] != '.' && text[i] != '!' && text[i] != '?' && text[i] != '_' && text[i] != '-') {
temp[i] = text[i];
}
else {
for (int j = 0; j < sub.length(); j++)
{
if (temp[j] != sub[j]) {
temp = " ";
break;
}
else {
flag = 0;
}
}
}
if (flag == 0) {
a.push_back(temp);
temp = " ";
}
}
for (int j = 0; j < sub.length(); j++)
{
if (temp[j] != sub[j]) {
temp = " ";
break;
}
else {
flag = 0;
}
}
if (flag == 0) {
a.push_back(temp);
temp = " ";
}
}
temp[i] = text[i]; - здесь ошибка при четвертой итерации, при входных данных:
ee Aa
A