Files
wasm_transcript_browser/src/core/string.c
2024-12-29 10:26:42 +01:00

59 lines
1.4 KiB
C

#define STR_FMT(buff, str) \
va_list args1; \
va_start(args1, str); \
i32 len = stbsp_vsnprintf(buff, sizeof(buff), str, args1); \
va_end(args1)
i32 str_len(char *str) {
i32 i = 0;
while (str[i]) i += 1;
return i;
}
b32 s8_equal(s8_t a, s8_t b);
s8_t s8_from_char(char *string);
b32 str_eq(char *a, char *b) {
return s8_equal(s8_from_char(a), s8_from_char(b));
}
char char_to_lower_case(char a) {
if (a >= 'A' && a <= 'Z') a += 32;
return a;
}
char char_to_upper_case(char a) {
if (a >= 'a' && a <= 'z') a -= 32;
return a;
}
b32 char_is_whitespace(char w) {
b32 result = w == '\n' || w == ' ' || w == '\t' || w == '\v' || w == '\r';
return result;
}
b32 char_is_alphabetic(char a) {
b32 result = (a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z');
return result;
}
b32 char_is_ident(char a) {
b32 result = (a >= 'a' && a <= 'z') || (a >= 'A' && a <= 'Z') || a == '_';
return result;
}
b32 char_is_digit(char a) {
b32 result = a >= '0' && a <= '9';
return result;
}
b32 char_is_alphanumeric(char a) {
b32 result = char_is_digit(a) || char_is_alphabetic(a);
return result;
}
i64 wstr_len(wchar_t *string) {
i64 len = 0;
while (*string++ != 0)
len++;
return len;
}