-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathft_memcmp.c
61 lines (55 loc) · 2.17 KB
/
ft_memcmp.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_memcmp.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: mlaffita <[email protected]> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/10/19 14:33:43 by mlaffita #+# #+# */
/* Updated: 2025/02/07 11:35:56 by mlaffita ### ########.fr */
/* */
/* ************************************************************************** */
#include "libft.h"
/* ****************************************************************************
Cette fonction permet de comparer le contenu de deux blocs de mémoire
spécifiés par les deux premiers paramètres de la fonction.
Le troisième paramètre, size, permet de spécifier le nombre d'octets sur
lequel comparer les deux blocs.
Les octets des deux blocs sont comparés deux à deux. Tant que les deux octets
comparés sont égaux, la fonction passe aux deux suivants.
Si les deux octets comparés sont différents, alors la fonction renvérra
lequel des deux blocs est le plus petit en termes de contenu.
*******************************************************************************
*/
int ft_memcmp(const void *s1, const void *s2, size_t n)
{
unsigned char *str1;
unsigned char *str2;
size_t i;
str1 = (unsigned char *)s1;
str2 = (unsigned char *)s2;
i = 0;
while (i < n)
{
if (str1[i] != str2[i])
return (str1[i] - str2[i]);
i++;
}
return (0);
}
/*
#include <stdio.h>
int main()
{
char tab1[] = {'a', 'b', 'c', 'd'};
char tab2[] = {'a', 'b', 'c', 'e'};
int result = ft_memcmp(tab1, tab2, 4);
if ( result == 0)
printf("les blocs de memoire sont identiques\n");
else if (result < 0)
printf("tab1 inferieur a tab2\n");
else
printf("tab1 superieur a tab2\n");
return(0);
}
*/