/
nirinis
/
MalachiteDSL
Обзор
Документация
Войти
/
nirinis
/
MalachiteDSL
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
source/utils/strings/madsl_string_functions.c
59 строк
2 KB
nirinis
Appending of fundamental files
02 авг 2026, 18:43
Верифицирован
02 авг 2026, 18:43
17af66b
Код
Авторство
О чём код?
#include "..\..\..\include\utils\strings\madsl_string_functions.h" #include <string.h> const char* madsl_binary_prefix = "0b"; const char* madsl_hex_prefix = "0x"; int madsl_is_digit(char c) { return c >= '0'&& c <= '9'; } int madsl_is_digit_bin(char c) { return c >= '0'&& c <= '1'; } int madsl_is_digit_hex(char c) { return (c >= '0'&& c <= '9') || (c >= 'A' && c <= 'F') || (c >= 'a' && c <= 'f'); } int madsl_string_is_number(const char* string, size_t size) { if (!string || size == 0) return 0; size_t start = (string[0] == '-') ? 1 : 0; if (size - start > 2 && memcmp(string + start, madsl_binary_prefix, 2) == 0) { start += 2; if (start >= size) return 0; for (size_t i = start; i < size; i++) { if (!madsl_is_digit_bin(string[i])) return 0; } return 1; } if (size - start > 2 && memcmp(string + start, madsl_hex_prefix, 2) == 0) { start += 2; if (start >= size) return 0; for (size_t i = start; i < size; i++) { if (!madsl_is_digit_hex(string[i])) return 0; } return 1; } int has_dot = 0; for (size_t i = start; i < size; i++) { if (string[i] == '.') { if (has_dot) return 0; has_dot = 1; } else if (!madsl_is_digit(string[i])) { if (size > 1 && i == size - 1 && (string[i] == 'f' || string[i] == 'F')) return 1; return 0; } } return 1; }