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