Как найти в стоке слово наибольшей длины на C++?

Для поиска слова наибольшей длины в строке на языке C++ можно использовать следующий алгоритм:

1. Создайте переменные max_length и max_word для хранения максимальной длины и найденного слова соответственно.
2. Инициализируйте max_length значением 0, а max_word пустой строкой.
3. Произведите цикл по символам в строке. Для каждого символа:
- Если символ является буквой:
* Инициализируйте переменную current_word пустой строкой.
* Продолжайте чтение символов до тех пор, пока символ является буквой или цифрой.
* Проверьте, является ли длина current_word больше max_length.
* Если это так, обновите max_length и присвойте max_word значение current_word.
- Если символ не является буквой, перейдите к следующему символу.
4. По окончании цикла max_word будет содержать слово наибольшей длины в строке.

Приведем пример кода на C++ для реализации данного алгоритма:

#include <iostream>
#include <string>

std::string findLongestWord(const std::string& str) {
    int max_length = 0;
    std::string max_word = "";

    std::string current_word = "";
    for (char c : str) {
        if (isalpha(c)) {
            current_word += c;
        } else {
            if (current_word.length() > max_length) {
                max_length = current_word.length();
                max_word = current_word;
            }
            current_word = "";
        }
    }

    if (current_word.length() > max_length) {
        max_word = current_word;
    }

    return max_word;
}

int main() {
    std::string str = "Hello, world! This is a test string.";
    std::string longest_word = findLongestWord(str);

    std::cout << "Longest word: " << longest_word << std::endl;

    return 0;
}

В этом примере функция findLongestWord принимает строку в качестве аргумента и возвращает найденное слово наибольшей длины. Мы протестируем эту функцию на примере строки "Hello, world! This is a test string." и выведем результат в консоль.

Ожидаемый вывод:

Longest word: string

Основная логика реализована в цикле, который проходит по каждому символу в строке и формирует слова, обновляя переменные max_length и max_word при необходимости.