Files
MontaukOS/kernel/src/CppLib/CString.cpp
T
2025-04-16 10:32:11 +02:00

42 lines
1.0 KiB
C++

/*
* CString.cpp
* C++ string tooling
* Copyright (c) 2025 Daniel Hammer
*/
#include "CString.hpp"
#include "Stream.hpp"
#include <Libraries/Memory.hpp>
#include <Memory/Heap.hpp>
namespace kcp {
vector<const char*> splitstr(const char* str, char delimiter) {
vector<const char*> result;
cstringstream current_stream = cstringstream();
while (true) {
if (*str == delimiter || *str == '\0') {
auto cstr = current_stream.c_str();
auto cstr_len = Lib::strlen(cstr);
result.push_back((const char*)Memory::g_heap->Request(sizeof(char) * (cstr_len + 1)));
memcpy((void*)result.at(result.size() - 1), cstr, cstr_len + 1);
if (*str == '\0') {
break;
}
current_stream = cstringstream();
str++;
continue;
}
current_stream << (char)*str;
str++;
};
return result;
}
};