#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