Вопрос задан 25.09.2023 в 13:35. Предмет Информатика. Спрашивает Вишняков Андрей.

Написать класс работы со строками. Добавить следующие методы: 1) Вывести самое длинное слово;2)

Вывести самое короткое слово;С++ пожалуйста быстрее 55 баллов
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Малец Слава.

#include <iostream>

#include <string>

#include <vector>

class StringUtils {

public:

 // Возвращает самое длинное слово в строке

 static std::string getLongestWord(const std::string& str) {

   std::vector<std::string> words = split(str);

   std::string longestWord;

   for (const std::string& word : words) {

     if (word.length() > longestWord.length()) {

       longestWord = word;

     }

   }

   return longestWord;

 }

 // Возвращает самое короткое слово в строке

 static std::string getShortestWord(const std::string& str) {

   std::vector<std::string> words = split(str);

   std::string shortestWord = words[0];

   for (const std::string& word : words) {

     if (word.length() < shortestWord.length()) {

       shortestWord = word;

     }

   }

   return shortestWord;

 }

private:

 // Разбивает строку на слова

 static std::vector<std::string> split(const std::string& str) {

   std::vector<std::string> words;

   std::string word;

   for (char c : str) {

     if (c == ' ') {

       words.push_back(word);

       word.clear();

     } else {

       word += c;

     }

   }

   words.push_back(word);

   return words;

 }

};

int main() {

 std::string str = "The quick brown fox jumps over the lazy dog";

 std::cout << "Longest word: " << StringUtils::getLongestWord(str) << std::endl;

 std::cout << "Shortest word: " << StringUtils::getShortestWord(str) << std::endl;

 return 0;

}

Предложения пишите в строке std::string str =

0 0
Отвечает Белецька Андріана.

#include <string>

#include <vector>

class StringHelper {

public:

   // Конструктор класса

   StringHelper(const std::string& str) : str_(str) {}

   // Метод для получения самого длинного слова

   std::string getLongestWord() const;

   // Метод для получения самого короткого слова

   std::string getShortestWord() const;

private:

   // Внутреннее представление строки

   std::string str_;

};

std::string StringHelper::getLongestWord() const {

   std::vector<std::string> words = split(str_);

   std::string longestWord;

   for (const auto& word : words) {

       if (word.size() > longestWord.size()) {

           longestWord = word;

       }

   }

   return longestWord;

}

std::string StringHelper::getShortestWord() const {

   std::vector<std::string> words = split(str_);

   std::string shortestWord;

   for (const auto& word : words) {

       if (shortestWord.empty() || word.size() < shortestWord.size()) {

           shortestWord = word;

       }

   }

   return shortestWord;

}

Функция split в этом коде не реализована, но она должна разбивать строку на слова по пробелам и возвращать список слов в виде std::vector<std::string>. Вы можете реализовать эту функцию самостоятельно, либо использовать готовую реализацию, например, из стандартной библиотеки C++

0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Конечно, вот пример реализации класса для работы со строками на C++ с методами для поиска самого длинного и самого короткого слова в строке:

cpp
#include <iostream> #include <string> #include <sstream> #include <vector> class StringManipulator { private: std::string input_string; public: StringManipulator(const std::string& input) : input_string(input) {} // Метод для разделения строки на слова std::vector<std::string> splitIntoWords() const { std::vector<std::string> words; std::istringstream iss(input_string); std::string word; while (iss >> word) { words.push_back(word); } return words; } // Метод для поиска самого длинного слова std::string findLongestWord() const { std::vector<std::string> words = splitIntoWords(); if (words.empty()) { return ""; } std::string longest_word = words[0]; for (const std::string& word : words) { if (word.length() > longest_word.length()) { longest_word = word; } } return longest_word; } // Метод для поиска самого короткого слова std::string findShortestWord() const { std::vector<std::string> words = splitIntoWords(); if (words.empty()) { return ""; } std::string shortest_word = words[0]; for (const std::string& word : words) { if (word.length() < shortest_word.length()) { shortest_word = word; } } return shortest_word; } }; int main() { std::string input; std::cout << "Введите строку: "; std::getline(std::cin, input); StringManipulator manipulator(input); std::string longest_word = manipulator.findLongestWord(); std::string shortest_word = manipulator.findShortestWord(); if (!longest_word.empty()) { std::cout << "Самое длинное слово: " << longest_word << std::endl; } else { std::cout << "Строка пуста." << std::endl; } if (!shortest_word.empty()) { std::cout << "Самое короткое слово: " << shortest_word << std::endl; } else { std::cout << "Строка пуста." << std::endl; } return 0; }

Этот код создает класс StringManipulator, который принимает входную строку и имеет методы findLongestWord и findShortestWord для поиска самого длинного и короткого слова соответственно. Метод splitIntoWords используется для разделения входной строки на слова.

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос