Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <vector>
- using std::cin;
- using std::cout;
- using std::endl;
- using std::string;
- using std::vector;
- int count_words(string str)
- {
- // кол-во слов = количество пробелов + 1
- return std::count(str.begin(), str.end(), ' ') + 1;
- }
- vector<string> sentence(const string inp)
- {
- string str = inp;
- // разбиваем строку на предложения
- std::vector<string> result;
- const string delimiter = ".";
- size_t pos = 0;
- string buf{};
- // пока существует разделитель в предложении
- while((pos = str.find(delimiter)) != string::npos)
- {
- // удаляем лишние пробелы в начале, если они существуют
- if (str.at(0) == ' ')
- buf = str.substr(1,pos);
- else
- buf = str.substr(0,pos);
- // добавляем в вектор предложение
- result.push_back(buf);
- // удаляем из общей строки предложение
- str.erase(0, pos + delimiter.length());
- }
- return result;
- }
- int main()
- {
- std::ifstream in("text.txt");
- if (!in.is_open())
- {
- cout << "could not read the file. \n";
- return -1;
- }
- int count_of_words = 0;
- cout << "enter count of words: ";
- cin >> count_of_words;
- string buf{};
- while(std::getline(in,buf))
- {
- vector<string> inp = sentence(buf);
- for (const auto& sentence: inp)
- {
- if (count_words(sentence) == count_of_words)
- cout << sentence << endl;
- }
- }
- in.close();
- system("pause");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement