Написать класс работы со строками. Добавить следующие методы:
1) Вывести самое длинное слово;
2) Вывести самое короткое слово;
С++ пожалуйста быстрее 55 баллов
Ответы на вопрос
#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++
#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 =