разбивает строку типа std::string на вектор std::vector<std::string> по пробелу

Ответить
ya
^-^
Сообщения: 2673
Зарегистрирован: 16 дек 2021, 19:56

разбивает строку типа std::string на вектор std::vector<std::string> по пробелу

Сообщение ya »

разбивает строку типа std::string на вектор std::vector<std::string> по пробелу

Код: Выделить всё

#include <vector>
#include <string>
#include <sstream>

std::vector<std::string> splitStringBySpace(const std::string& input) {
    std::vector<std::string> result;
    std::istringstream stream(input);
    std::string word;

    while (stream >> word) {
        result.push_back(word);
    }

    return result;
}
использование:

Код: Выделить всё

#include <iostream>

int main() {
    std::string str = "Это пример строки для разбора";
    auto words = splitStringBySpace(str);

    for (const auto& w : words) {
        std::cout << w << std::endl;
    }

    return 0;
}
ya
^-^
Сообщения: 2673
Зарегистрирован: 16 дек 2021, 19:56

Re: разбивает строку типа std::string на вектор std::vector<std::string> по пробелу

Сообщение ya »

Чтобы проверить, что первый элемент std::vector<std::string> не пустой, нужно сначала убедиться, что вектор не пустой (то есть содержит хотя бы один элемент), а затем проверить, что этот элемент не является пустой строкой.

Код: Выделить всё

#include <vector>
#include <string>
#include <iostream>

int main() {
    std::vector<std::string> vec = {"Hello", "world"};

    if (!vec.empty() && !vec[0].empty()) {
        std::cout << "Первый элемент не пустой: " << vec[0] << std::endl;
    } else {
        std::cout << "Вектор пустой или первый элемент пустой." << std::endl;
    }

    return 0;
}
Ответить