aboutsummaryrefslogtreecommitdiff
path: root/src/libs/string.cc
diff options
context:
space:
mode:
authorLoic Guegan <manzerbredes@mailbox.org>2021-04-21 13:18:01 +0200
committerLoic Guegan <manzerbredes@mailbox.org>2021-04-21 13:18:01 +0200
commit2f712d027b38bebd571e4fa673f0d642b59e3c98 (patch)
tree2dc9e1b7a2e11b0300b461ea3fc590ad52db3137 /src/libs/string.cc
parentd9443c7fdf756212bb52ffc934b1166038bc2ad3 (diff)
Refactoring
Diffstat (limited to 'src/libs/string.cc')
-rw-r--r--src/libs/string.cc36
1 files changed, 21 insertions, 15 deletions
diff --git a/src/libs/string.cc b/src/libs/string.cc
index f8ae3ca..73c3318 100644
--- a/src/libs/string.cc
+++ b/src/libs/string.cc
@@ -1,16 +1,16 @@
#include "string.hpp"
#include "math.hpp"
-void memcpy(void* src, void* dst, int size){
- char *c_src=(char*)src;
- char *c_dst=(char*)dst;
- for(int i=0;i<size;i++)
- *c_dst=*c_src;
+void memcpy(void* src, void* dst, u32 size){
+ u8 *c_src=(u8*)src;
+ u8 *c_dst=(u8*)dst;
+ for(u32 i=0;i<size;i++)
+ *(c_dst+i)=*(c_src+i);
}
void itoa(u64 i, char *a){
// Check if lower than 0
- char neg=0;
+ u8 neg=0;
if(i<0){
neg=1;
i=-i;
@@ -18,17 +18,17 @@ void itoa(u64 i, char *a){
}
// Count number of digits
- int len=1;
+ u32 len=1;
while(i/pow(10,len)>=1)
{
len++;
}
// Build string
- int max_pow=len-1;
- for(int j=0;j<=max_pow;j++){
- int cur_pow=pow(10,max_pow-j);
- char digit=i/cur_pow;
+ u32 max_pow=len-1;
+ for(u32 j=0;j<=max_pow;j++){
+ u32 cur_pow=pow(10,max_pow-j);
+ u8 digit=i/cur_pow;
a[j+neg]='0'+digit;
i=i-digit*cur_pow; // Remove first digits (most significant)
}
@@ -45,7 +45,7 @@ void itoh(u64 i, char *a){
u32 i_a=i&0xFFFFFFFF;
u32 i_b=i>>32;
- for(char j=0;j<8;j++){
+ for(u8 j=0;j<8;j++){
u64 t=(j*4);
u64 mask=0xF;
mask=mask << t;
@@ -53,7 +53,7 @@ void itoh(u64 i, char *a){
a[15-j]=hex[index];
}
- for(char j=0;j<8;j++){
+ for(u8 j=0;j<8;j++){
u64 t=(j*4);
u64 mask=0xF;
mask=mask << t;
@@ -63,9 +63,15 @@ void itoh(u64 i, char *a){
a[16]='\0';
}
-int strlen(char *s){
- int i=0;
+u32 strlen(char *s){
+ u32 i=0;
while(s[i]!='\0')
i++;
return i;
+}
+
+void substr(u32 s, u32 e, char *src, char *dst){
+ u32 size=abs(e-s)+1;
+ memcpy(src+s, dst, size);
+ dst[size]='\0';
} \ No newline at end of file