Представлено вот такое задание:
Вот мой код:
#include<iostream>
#include<string>
using namespace std;
int main()
{
setlocale(LC_ALL, "Russian");
string aBBa = "Аввакий Аввакум Аввакиевич";
int i = 0, j = 0;
cout << "Выражение: " << aBBa << endl;
do {
if (aBBa[i] == 'а')
j++;
i++;
} while (aBBa[i] != '\0');
cout << "Кол-во букв а = " << j << endl;
i = 0;
system("pause");
return 0;
}
Мне удалось только понять, как находить количество букв в тексте, если же я попробую найти полуслово тем же способом (а именно во фрагменте ниже напишу вместо a - авва),
if (aBBa[i] == 'а')
j++;
то программа откажется что-либо вычислять (значение будет равно нулю).
Так работает не только с русскими словосочетаниями, пробовал вместо авва вводить abba и менять текст в переменной на английский - та же проблема.
Вы указали что используете C++ в метке, но Ваше решение не задействует возможности С++.
На данный момент Вы пытались использовать идею поиска по символьный (почитайте - метод Бойера-Мура-Хорспула или просто std::boyer_moore_searcher, они есть в std) Вы можете реализовать его Сами или посмотреть готовую реализацию.
Но давайте отойдем от Си-стайла и явного посимвольного сравнения. Ваш подход больше подходит под С. Вы можете добавить еще один вопрос и попросить реализовать это на СИ.
Посмотрите на Вариант решения на C++ который Вам подойдет. std::string уже умеет находить подстроку (и даже все подстроки) без явного манипулирования программистом данными.
#include <iostream>
#include <string>
int main([[maybe_unused]] int argc, [[maybe_unused]] char *argv[]) {
std::string str{"Аввакий Аввакум Аввакиевич"};
std::string key{"Авва"};
std::size_t n {0};
for (size_t pos = str.find(key, 0); pos != std::string::npos; ++n) {
pos = str.find(key,pos+1);
}
std::cout << n << std::endl;
return 0;
}
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Подскажите пожалуйста, где можно найти исходный код MFCЕсли конкретней, то я бы хотел посмотреть реализацию класса CFile, но не смог найти в интернете
При попытке подключенияobj файла возникает ошибка LNK1107 недопустимый или поврежденный файл: не удается прочитать по 0xDF HLL D:\Aleksey\Учеба\C++\HLL\HLL\add_matrix
Как из обычного классического desktop приложения написанного на C++ запустить приложение установленное из Windows Store? По аналогии с QProcess
Существует ли способ построить в классе группу "одинаковых" методов, но использующих каждый одно уникальное свойство/параметр, при помощи...