From 8de2e83c0b416b7f6037fa1d04ae21f901c75bd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Gil=20de=20G=C3=B3mez=20P=C3=A9rez?= Date: Tue, 11 Aug 2026 17:56:35 +0300 Subject: [PATCH] Solved: 01 - Basic IO --- modules/01_fundamentals/src/basic_io.cpp | 38 ++++++++++++++++-------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/modules/01_fundamentals/src/basic_io.cpp b/modules/01_fundamentals/src/basic_io.cpp index 8086fce..d1f920c 100644 --- a/modules/01_fundamentals/src/basic_io.cpp +++ b/modules/01_fundamentals/src/basic_io.cpp @@ -5,24 +5,36 @@ namespace fundamentals { -auto join_words(const std::vector& words, char separator) -> std::string { - // TODO: Join words with separator, no trailing separator. - (void)words; - (void)separator; - return {}; +auto join_words(const std::vector& words, const char separator) -> std::string { + std::ostringstream oss; + size_t i = 0; + for (const auto& word : words) { + i++; + oss << word; + if (i < words.size()) { + oss << separator; + } + } + return oss.str(); } auto parse_integers(const std::string& csv) -> std::vector { - // TODO: Parse comma-separated integers (e.g. "1,2,3"). - (void)csv; - return {}; + std::vector numbers; + std::istringstream iss(csv); + int n; + char c; + do { + iss >> n; + numbers.push_back(n); + iss >> c; + } while (!iss.eof()); + return numbers; } -auto format_score(const std::string& player, int score) -> std::string { - // TODO: Return " scored points". - (void)player; - (void)score; - return {}; +auto format_score(const std::string& player, const int score) -> std::string { + std::ostringstream oss; + oss << player << " scored " << score << " points"; + return oss.str(); } } // namespace fundamentals