Информатика, вопрос задал shellysupercellst , 1 год назад

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

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

Ответил leprekon882
0

Ответ:

#include <string>

#include <vector>

class StringUtils {

public:

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

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

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

std::string longestWord;

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

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

longestWord = word;

}

}

return longestWord;

}

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

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

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

std::string shortestWord = words[0];

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

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

shortestWord = word;

}

}

return shortestWord;

}

private:

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

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

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

std::string currentWord;

for (char c : str) {

if (c == ' ') {

words.push_back(currentWord);

currentWord.clear();

} else {

currentWord += c;

}

}

if (!currentWord.empty()) {

words.push_back(currentWord);

}

return words;

}

};

#include <iostream>

#include <string>

int main() {

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

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

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

return 0;

}

Новые вопросы