7 месяцев назад
Программирование на с++, информатика, помогите пожалуйста, очень срочно
Ниже дана программа, которая вычисляет количество подстрок «AA» в строке, хранящейся в переменной s.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string s = "AABABBDABBABCABCCBAAA";
int kol = 0;
for (char i : s)
{
if (s[i] == 'A' && s[i + 1] == 'A') {
kol += 1;
}
}
cout << kol << endl;
}
Так, для строки, хранящейся в переменной s, алгоритм должен вывести результат 3 (AABABBDABBABCABCCBAAA).
В указанном выше алгоритме допущена ошибка в одной строчке кода. Найдите и исправьте ее. В ответе укажите исправленную строку кода.
Только авторизированные пользователи могут оставлять свои ответы
Дата
Популярность
1234567891011121314151617181920212223
#include <algorithm>
#include <iostream>
#include <string>
using namespace std;
size_t counter(const string& str, const string& sub) {
if (sub.empty()) return 0;
size_t cnt = 0;
size_t pos = 0;
while ((pos = str.find(sub, pos)) != string::npos) {
++cnt;
++pos;
}
return cnt;
}
int main() {
const string str = "AABABBDABBABCABCCBAAA";
const string sub{ "AA" };
cout << counter(str, sub) << '\n';
cin.get();
}
for (char i : s)
Поправь тут, чтобы индексы правильно считало.
Больше по теме