new cptr functions

This commit is contained in:
Timerix22 2023-05-22 03:06:22 +06:00
parent a7de63bb9d
commit f32306a6d5
2 changed files with 24 additions and 2 deletions

View File

@ -1,4 +1,5 @@
#include "base.h" #include "base.h"
#include <ctype.h>
// returns length of char buffer (without \0) // returns length of char buffer (without \0)
u32 cptr_length(char* str){ u32 cptr_length(char* str){
@ -72,7 +73,7 @@ u32 cptr_indexOfChar(char* ptr, char fragment){
return -1; return -1;
} }
u32 cptr_lastIndexOf(char* ptr, char* fragment){ u32 cptr_lastIndexOf(char* ptr, char* fragment){
char sc=*ptr; char sc;
u32 fi_last=cptr_length(fragment)-1; u32 fi_last=cptr_length(fragment)-1;
for(i32 si=cptr_length(ptr)-1, fi=fi_last; si>=0; si--){ for(i32 si=cptr_length(ptr)-1, fi=fi_last; si>=0; si--){
sc=ptr[si]; sc=ptr[si];
@ -86,7 +87,7 @@ u32 cptr_lastIndexOf(char* ptr, char* fragment){
return -1; return -1;
} }
u32 cptr_lastIndexOfChar(char* ptr, char fragment){ u32 cptr_lastIndexOfChar(char* ptr, char fragment){
char sc=*ptr; char sc;
for(i32 si=cptr_length(ptr)-1; si>=0; si--){ for(i32 si=cptr_length(ptr)-1; si>=0; si--){
sc=ptr[si]; sc=ptr[si];
if(sc==fragment){ if(sc==fragment){
@ -135,3 +136,21 @@ char* __cptr_concat(u32 n, ...){
free(lengths); free(lengths);
return output; return output;
} }
char* cptr_toLower(char* src) {
u32 length=cptr_length(src);
char *p=malloc(length+1);
p[length]=0;
for(u32 i=0; i<length; i++)
p[i]=tolower(src[i]);
return p;
}
char* cptr_toUpper(char* src) {
u32 length=cptr_length(src);
char *p=malloc(length+1);
p[length]=0;
for(u32 i=0; i<length; i++)
p[i]=toupper(src[i]);
return p;
}

View File

@ -47,6 +47,9 @@ void memcopy(void* from, void* to, u32 size);
char* __cptr_concat(u32 n, ...); char* __cptr_concat(u32 n, ...);
#define cptr_concat(STR...) __cptr_concat(count_args(STR), STR) #define cptr_concat(STR...) __cptr_concat(count_args(STR), STR)
char* cptr_toLower(char* src);
char* cptr_toUpper(char* src);
#if __cplusplus #if __cplusplus
} }
#endif #endif