[glacier] Add a method to build a bounded string

This commit is contained in:
Drew Galbraith 2023-07-06 10:40:36 -07:00
parent 150bfd2fd4
commit f7fb4f4ddc
2 changed files with 7 additions and 4 deletions

View File

@ -14,12 +14,14 @@ uint64_t cstrlen(const char* cstr) {
} // namespace } // namespace
String::String(const char* str) { String::String(const char* str) : String(str, cstrlen(str)) {}
length_ = cstrlen(str);
String::String(const char* cstr, uint64_t str_len) : length_(str_len) {
cstr_ = new char[length_ + 1]; cstr_ = new char[length_ + 1];
for (uint64_t i = 0; i <= length_; i++) { for (uint64_t i = 0; i < length_; i++) {
cstr_[i] = str[i]; cstr_[i] = cstr[i];
} }
cstr_[length_] = '\0';
} }
bool String::operator==(const String& other) { bool String::operator==(const String& other) {

View File

@ -7,6 +7,7 @@ namespace glcr {
class String { class String {
public: public:
String(const char* cstr); String(const char* cstr);
String(const char* cstr, uint64_t str_len);
const char* cstr() const { return cstr_; } const char* cstr() const { return cstr_; }
uint64_t length() const { return length_; } uint64_t length() const { return length_; }