ableos/sysdata/libraries/stn/src/string.hb

52 lines
868 B
Plaintext

length := fn(ptr: ^u8): int {
len := 0;
loop if *ptr == 0 break else {
len += 1;
ptr += 1;
}
return len;
}
display_int := fn(num: int, p: ^u8): ^u8 {
i := 0;
if num == 0 {
set(p, 48);
return p;
}
loop {
if num == 0 break;
set(p + i, num % 10 + 48);
num /= 10;
i += 1;
}
reverse(p);
//null terminate
set(p + i, 0);
return p;
}
reverse := fn(s: ^u8): void {
//reverse a string, don't remove digits
len := 0;
loop {
if *(s + len) == 0 break;
len += 1;
}
i := 0;
j := len - 1;
loop {
if i >= j break;
temp := *(s + i);
*(s + i) = *(s + j);
*(s + j) = temp;
i += 1;
j -= 1;
}
return;
}
set := fn(change: ^int, new: int): void {
*(change) = new;
return;
}