Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <sstream>
- #include <string>
- #include <set>
- int main() {
- std::string input;
- // Ввод строки
- std::cout << "Введите строку: ";
- std::getline(std::cin, input);
- // Подсчет количества слов
- std::istringstream wordStream(input);
- std::string word;
- int wordCount = 0;
- while (wordStream >> word) {
- // Учитываем запятые внутри слов
- size_t commaPos = word.find(',');
- while (commaPos != std::string::npos) {
- word.erase(commaPos, 1);
- commaPos = word.find(',');
- }
- // Учитываем запятые в конце слова
- if (!word.empty() && (word.back() == ',' || word.back() == '.' || word.back() == '!' || word.back() == '?')) {
- word.pop_back();
- }
- if (!word.empty()) {
- wordCount++;
- }
- }
- std::cout << "Количество слов: " << wordCount << std::endl;
- // Подсчет количества уникальных слов
- std::istringstream wordStreamUnique(input);
- std::set<std::string> uniqueWords;
- std::string uniqueWord;
- while (wordStreamUnique >> uniqueWord) {
- // Учитываем запятые внутри слов
- size_t commaPos = uniqueWord.find(',');
- while (commaPos != std::string::npos) {
- uniqueWord.erase(commaPos, 1);
- commaPos = uniqueWord.find(',');
- }
- // Учитываем запятые в конце слова
- if (!uniqueWord.empty() && (uniqueWord.back() == ',' || uniqueWord.back() == '.' || uniqueWord.back() == '!' || uniqueWord.back() == '?')) {
- uniqueWord.pop_back();
- }
- if (!uniqueWord.empty()) {
- uniqueWords.insert(uniqueWord);
- }
- }
- std::cout << "Количество уникальных слов: " << uniqueWords.size() << std::endl;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement