Загрузка данных


#include <stdio.h>
#include <stdlib.h>

#include "s21_string.h"

void s21_strlen_test(void);
void s21_strcmp_test(void);
void print_strlen_result(const char *input, size_t result, size_t expected);
void print_strcmp_result(const char *s1, const char *s2, int result, int expected);

int main(void) {
    s21_strlen_test();
    s21_strcmp_test();

    return 0;
}

void s21_strlen_test(void) {
    print_strlen_result("hello", s21_strlen("hello"), 5);
    print_strlen_result("", s21_strlen(""), 0);
    print_strlen_result("21 school", s21_strlen("21 school"), 9);
}

void s21_strcmp_test(void) {
    print_strcmp_result("abc", "abc", s21_strcmp("abc", "abc"), 0);
    print_strcmp_result("abc", "abd", s21_strcmp("abc", "abd"), -1);
    print_strcmp_result("abd", "abc", s21_strcmp("abd", "abc"), 1);
}

void print_strlen_result(const char *input, size_t result, size_t expected) {
    printf("s21_strlen_test input: \"%s\" output: %lu result: ", input, result);

    if (result == expected) {
        printf("SUCCESS\n");
    } else {
        printf("FAIL\n");
    }
}

void print_strcmp_result(const char *s1, const char *s2, int result, int expected) {
    printf("s21_strcmp_test input: \"%s\" \"%s\" output: %d result: ", s1, s2, result);

    if ((result == 0 && expected == 0) || (result < 0 && expected < 0) ||
        (result > 0 && expected > 0)) {
        printf("SUCCESS\n");
    } else {
        printf("FAIL\n");
    }
}


CC = gcc
CFLAGS = -Wall -Wextra -Werror -std=c11
BUILD_DIR = ../../build

strlen_tests:
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) s21_string.c s21_string_test.c -o $(BUILD_DIR)/Quest_6

strcmp_tests:
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) s21_string.c s21_string_test.c -o $(BUILD_DIR)/Quest_7

strcpy:
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) s21_string.c s21_string_test.c -o $(BUILD_DIR)/Quest_8

strcat:
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) s21_string.c s21_string_test.c -o $(BUILD_DIR)/Quest_9

strchr:
	mkdir -p $(BUILD_DIR)
	$(CC) $(CFLAGS) s21_string.c s21_string_test.c -o $(BUILD_DIR)/Quest_10

clean:
	rm -rf $(BUILD_DIR)

rebuild: clean strlen_tests strcmp_tests strcpy strcat strchr