как разделить строку char на слова и записать в файл через запятую?


как разделить строку char типа на слова? после разделения записать в файл слова через запятую


0

Возьмите строку, разделите её и запишите в файл через запятую. Если серьёзно то Как задать хороший вопрос?

0

так строку ? или строку "char" там одно слово. Вы о c++ ? ну stringstream возьмите, запишите их в контейнер(к примеру вектор) потом дампаните в файл

Ответов: 1


Andrey

Вариант 1 : Ну просто возьмиет разбейте строку на лексемы через std::istringstream

Удалите все разделители которые вы ожидаете

Далее дампаниет все в вектор

потом дампаните в файл с нужным Вам разделителем

Вариант 2:

Сразу писать в файл без вектора если Вы не планируете обрабтку этих данных

#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <filesystem>
#include <fstream>


int main() {

    std::string str("One, two. three");

    std::istringstream ist(str);
    std::string tmp_str;
    std::vector<std::string> vec;

    while (ist >> tmp_str) {
        tmp_str.erase(std::remove_if(std::begin(tmp_str), 
                                     std::end(tmp_str), 
                                     [](char c) 
                                     { return c == ','|| c == '.' || c == '!'; }),
                                     std::end(tmp_str));
        vec.push_back(tmp_str);
    }

    std::string file_name{"out"};
    auto path{std::filesystem::current_path()};
    path = path / file_name;
    if (std::filesystem::exists(path)) {
        std::filesystem::remove(path);
    } 

    std::ofstream out_stream(path, std::ios::out);
    if (!out_stream.is_open()) {
        std::cerr << "Error open file" << std::endl;
        return -1;
    }


    for (const auto& var : vec) {
        std::cout << var << std::endl;
        out_stream << var;
        if (var != *(std::end(vec) -1)) {
            out_stream << ", ";
        } else {
            out_stream << std::endl;
        }
    }

    return 0;
}

задан
4 дня 12 часов назад
просмотрен
25