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


#ifndef S21_STRING_H
#define S21_STRING_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);
char *s21_strcat(char *dest, const char *src);
char *s21_strchr(const char *str, int c);

#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) {
    int i = 0;

    while (str1[i] != '\0' && str1[i] == str2[i]) {
        i++;
    }

    return (unsigned char)str1[i] - (unsigned char)str2[i];
}

char *s21_strcpy(char *dest, const char *src) {
    int i = 0;

    while (src[i] != '\0') {
        dest[i] = src[i];
        i++;
    }

    dest[i] = '\0';

    return dest;
}

char *s21_strcat(char *dest, const char *src) {
    int dest_len = s21_strlen(dest);
    int i = 0;

    while (src[i] != '\0') {
        dest[dest_len + i] = src[i];
        i++;
    }

    dest[dest_len + i] = '\0';

    return dest;
}

char *s21_strchr(const char *str, int c) {
    char *result = NULL;
    int i = 0;

    while (str[i] != '\0' && result == NULL) {
        if (str[i] == (char)c) {
            result = (char *)(str + i);
        }
        i++;
    }

    if ((char)c == '\0') {
        result = (char *)(str + i);
    }

    return result;
}