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



#ifndef S21_STRING_H
#define S21_STRING_H

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

size_t s21_strlen(const char *str);
int s21_strcmp(const char *str1, const char *str2);
char *s21_strcpy(char *dest, const char *src);

#endif

---


#include "s21_string.h"

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

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

    return length;
}

int s21_strcmp(const char *str1, const char *str2) {
    while (*str1 && *str1 == *str2) {
        str1++;
        str2++;
    }

    return (unsigned char)*str1 - (unsigned char)*str2;
}

char *s21_strcpy(char *dest, const char *src) {
    char *start = dest;

    while ((*dest++ = *src++) != '\0') {
    }

    return start;
}

---


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

strlen_tests: $(BUILD_DIR)/Quest_6

strcmp_tests: $(BUILD_DIR)/Quest_7

strcpy: $(BUILD_DIR)/Quest_8

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

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

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

clean:
	rm -f $(BUILD_DIR)/Quest_6 $(BUILD_DIR)/Quest_7 $(BUILD_DIR)/Quest_8

.PHONY: strlen_tests strcmp_tests strcpy clean