summaryrefslogtreecommitdiff
path: root/std/string.zc
diff options
context:
space:
mode:
authorZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-02-02 00:48:12 +0000
committerZuhaitz Méndez Fernández de Aránguiz <zuhaitz@debian>2026-02-02 00:48:12 +0000
commit6bbcd9536522386a53cd2f87ece7aa6cf423829f (patch)
tree55d6dc2b4e2a9d84c09a67acb36f1ab4131e290c /std/string.zc
parentec140e5e1823ed72e1ac8ab4af121dbe1b3f85d7 (diff)
parentdadabf8b9d11d099777acc261068a3ed8ca06f24 (diff)
Merge branch 'main' of https://github.com/z-libs/Zen-C into patch-1
Diffstat (limited to 'std/string.zc')
-rw-r--r--std/string.zc31
1 files changed, 28 insertions, 3 deletions
diff --git a/std/string.zc b/std/string.zc
index fe5b0ad..54f11b2 100644
--- a/std/string.zc
+++ b/std/string.zc
@@ -55,6 +55,28 @@ impl String {
}
}
+ fn append_c(self, s: char*) {
+ if (self.vec.len > 0) {
+ self.vec.len = self.vec.len - 1;
+ }
+ let len = strlen(s);
+ for (let i = 0; i < len; i = i + 1) {
+ self.vec.push(s[i]);
+ }
+ self.vec.push(0);
+ }
+
+ fn append_c_ptr(ptr: String*, s: char*) {
+ if (ptr.vec.len > 0) {
+ ptr.vec.len = ptr.vec.len - 1;
+ }
+ let len = strlen(s);
+ for (let i = 0; i < len; i = i + 1) {
+ ptr.vec.push(s[i]);
+ }
+ ptr.vec.push(0);
+ }
+
fn add(self, other: String*) -> String {
let new_s = String::from(self.c_str());
new_s.append(other);
@@ -68,7 +90,8 @@ impl String {
}
fn eq(self, other: String*) -> bool {
- return strcmp(self.c_str(), (*other).c_str()) == 0;
+ let zero: c_int = 0;
+ return strcmp(self.c_str(), (*other).c_str()) == zero;
}
fn length(self) -> usize {
@@ -124,7 +147,8 @@ impl String {
fn starts_with(self, prefix: char*) -> bool {
let plen = strlen(prefix);
if plen > self.length() { return false; }
- return strncmp(self.c_str(), prefix, plen) == 0;
+ let zero: c_int = 0;
+ return strncmp(self.c_str(), prefix, plen) == zero;
}
fn ends_with(self, suffix: char*) -> bool {
@@ -132,7 +156,8 @@ impl String {
let len = self.length();
if slen > len { return false; }
let offset = (int)(len - slen);
- return strcmp(self.c_str() + offset, suffix) == 0;
+ let zero: c_int = 0;
+ return strcmp(self.c_str() + offset, suffix) == zero;
}
fn free(self) {