#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;
}