Skip to content
Manvendra Bhangui edited this page May 7, 2023 · 2 revisions

NAME

byte - The byte library interface

SYNTAX

#include <byte.h>

Copying Strings

void byte_copy(out, len, in);
void byte_copyr(out, len, in);
void byte_zero(out, len);

char *out;
char *in;
unsigned int len;

byte_copy copies in[0] to out[0], in[1] to out[1], etc., and finally in[len-1] to out[len-1].

byte_copyr copies in[len-1] to out[len-1], in[len-2] to out[len-2], etc., and finally in[0] to out[0].

byte_zero sets out[0], out[1], ... out[len-1] to 0.

Comparing strings

result = byte_equal(one, len, two);
result = byte_diff(one, len, two);

char *one;
char *two;
unsigned int len;
int result;

byte_diff returns negative, 0, or positive, depending on whether the string one[0], one[1], ... one[len-1] is lexicographically smaller than, equal to, or greater than the string two[0], two[1], ... two[len-1].

byte_equal returns 1 if the strings are equal, 0 otherwise.

When the strings are different, byte_diff and byte_equal do not read bytes past the first difference.

Searching for bytes in strings

result = byte_chr(one, len, c);
result = byte_rchr(one, len, c);

char *one;
int c;
unsigned int len;
unsigned int result;

byte_chr returns the smallest integer i between 0 and len-1 inclusive such that one[i] equals (char) c. If no such integer exists, byte_chr returns len.

byte_rchr returns the largest integer i between 0 and len-1 inclusive such that one[i] equals (char) c. If no such integer exists, byte_rchr returns len.

byte_chr and byte_rchr may read all the bytes one[0], one[1], ... one[len-1], even if not all the bytes are relevant to the answer.

Clone this wiki locally