Добавлена функция str_contains

This commit is contained in:
Aren Elchinyan 2024-01-27 22:04:14 +03:00
parent adf6d4a8b9
commit 73bf252f98
4 changed files with 44 additions and 13 deletions

View File

@ -44,6 +44,7 @@ void *tool_memset(void *ptr, uint8_t n, uint64_t size);
uint64_t tool_strlen(const char *str);
void tool_strcpy(char *dest, char *src);
uint64_t tool_starts_with(const char *str, const char *prefix);
uint64_t tool_str_contains(const char *str, const char *substr);
void tool_format(void (*putc)(char c), const char *format_string, va_list args);
#endif // tool.h

View File

@ -66,6 +66,24 @@ uint64_t tool_starts_with(const char *str, const char *prefix) {
return 1;
}
uint64_t tool_str_contains(const char *str, const char *substr) {
uint64_t str_len = tool_strlen(str);
uint64_t substr_len = tool_strlen(substr);
if (substr_len > str_len) { return 0; }
for (uint64_t i = 0; i <= str_len - substr_len; i++) {
uint64_t j;
for (j = 0; j < substr_len; j++) {
if (str[i + j] != substr[j]) { break; }
}
if (j == substr_len) { return 1; }
}
return 0;
}
// Функция для переворачивания строки
void tool_reverse_str(char *str) {
int len = 0;

View File

@ -214,6 +214,24 @@ size_t count_chars(char *str, char c) {
return count;
}
uint64_t str_contains(const char *str, const char *substr) {
uint64_t str_len = strlen(str);
uint64_t substr_len = strlen(substr);
if (substr_len > str_len) { return 0; }
for (uint64_t i = 0; i <= str_len - substr_len; i++) {
uint64_t j;
for (j = 0; j < substr_len; j++) {
if (str[i + j] != substr[j]) { break; }
}
if (j == substr_len) { return 1; }
}
return 0;
}
void memcpy(void *dest, void *src, size_t n) {
char *d = (char *)dest;
char *s = (char *)src;

View File

@ -71,9 +71,9 @@ def handle_module_actions(module_list):
choice = input("[MOD]: ")
if choice == "1":
print("Доступные модули:")
for i, module in enumerate(module_list, start=1):
for i, module in enumerate(module_list, start=0):
print(f"{i}. {module['name']}")
module_index = int(input("Введите номер модуля: ")) - 1
module_index = int(input("Введите номер модуля: "))
install_selected_module(module_list, module_index)
elif choice == "2":
print("Установленные модули:")
@ -87,15 +87,9 @@ def handle_module_actions(module_list):
elif choice == "3":
break
def parse_arguments():
parser = argparse.ArgumentParser(description="Менеджер модулей")
parser.add_argument("-r", "--refresh", action="store_true", help="Обновить список модулей")
return parser.parse_args()
def main():
args = parse_arguments()
if args.refresh:
with open(module_path) as file:
repositories = json.load(file)
for repo in repositories: