diff options
Diffstat (limited to 'memory/memccmp.c')
-rw-r--r-- | memory/memccmp.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/memory/memccmp.c b/memory/memccmp.c new file mode 100644 index 0000000..dadb406 --- /dev/null +++ b/memory/memccmp.c @@ -0,0 +1,14 @@ +#include "memory.h" + +int memccmp(void const *buffer1, void const *buffer2, int value, size_t size) +{ + unsigned char const *buffer[] = {buffer1, buffer2}; + for (size_t i = 0; i < size; i++) { + if (buffer[0][i] != buffer[1][i]) + return buffer[0][i] - buffer[1][i]; + if (buffer[0][i] == (unsigned char)value || + buffer[1][i] == (unsigned char)value) + break; + } + return 0; +} |