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


smaugmol@us-s2:~/D09T06_ID_1577487-1/src/s21_string$ cat s21_string.h
#ifndef S21_STRING_H
#define S21_STRING_H

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

size_t s21_strlen(const char *str);

#endif
smaugmol@us-s2:~/D09T06_ID_1577487-1/src/s21_string$ cat s21_string.c
#include "s21_string.h"

size_t s21_strlen(const char *str) {
    size_t length = 0;

    while (str[length] != '\0') {
        length++;
    }

    return length;
}
smaugmol@us-s2:~/D09T06_ID_1577487-1/src/s21_string$ cat s21_string_test.c
#include "s21_string.h"

void s21_strlen_test(void) {
    const char *tests[] = {"Hello", "", "School 21"};
    const size_t expected[] = {5, 0, 9};
    const size_t count = sizeof(tests) / sizeof(tests[0]);

    for (size_t i = 0; i < count; i++) {
        size_t result = s21_strlen(tests[i]);

        printf("Input: \"%s\", Output: %zu, Expected: %zu — %s\n", tests[i], result, expected[i],
               result == expected[i] ? "SUCCESS" : "FAIL");
    }
}

int main(void) {
    s21_strlen_test();
    return 0;
}
smaugmol@us-s2:~/D09T06_ID_1577487-1/src/s21_string$ cat Makefile
CC = gcc
CFLAGS = -Wall -Wextra -Werror -std=c11
BUILD_DIR = ../../build
TARGET = $(BUILD_DIR)/Quest_6

strlen_tests: $(TARGET)

$(TARGET): s21_string.c s21_string_test.c s21_string.h
        mkdir -p $(BUILD_DIR)
        $(CC) $(CFLAGS) s21_string.c s21_string_test.c -o $(TARGET)

clean:
        rm -f $(TARGET)

.PHONY: strlen_tests clean