2026-08-11 17:40:36 +03:00
|
|
|
#include "basic_io.hpp"
|
|
|
|
|
|
|
|
|
|
#include <sstream>
|
|
|
|
|
#include <string>
|
|
|
|
|
|
|
|
|
|
namespace fundamentals {
|
|
|
|
|
|
2026-08-11 17:56:35 +03:00
|
|
|
auto join_words(const std::vector<std::string>& 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();
|
2026-08-11 17:40:36 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
auto parse_integers(const std::string& csv) -> std::vector<int> {
|
2026-08-11 17:56:35 +03:00
|
|
|
std::vector<int> numbers;
|
|
|
|
|
std::istringstream iss(csv);
|
|
|
|
|
int n;
|
|
|
|
|
char c;
|
|
|
|
|
do {
|
|
|
|
|
iss >> n;
|
|
|
|
|
numbers.push_back(n);
|
|
|
|
|
iss >> c;
|
|
|
|
|
} while (!iss.eof());
|
|
|
|
|
return numbers;
|
2026-08-11 17:40:36 +03:00
|
|
|
}
|
|
|
|
|
|
2026-08-11 17:56:35 +03:00
|
|
|
auto format_score(const std::string& player, const int score) -> std::string {
|
|
|
|
|
std::ostringstream oss;
|
|
|
|
|
oss << player << " scored " << score << " points";
|
|
|
|
|
return oss.str();
|
2026-08-11 17:40:36 +03:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
} // namespace fundamentals
|