52 lines
1.1 KiB
C
52 lines
1.1 KiB
C
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <stdint.h>
|
|
#include <string.h>
|
|
|
|
// string_compare_guy compares the contents of the left hand side, length with the contents of the
|
|
// right hand side, length and returns 1 if the right hand side (needle) is inside the left hand
|
|
// side (haystack).
|
|
static int string_compare_guy(char* lhs, int llength, char* rhs, int rlength) {
|
|
char* lnz = alloca(llength + 1);
|
|
memcpy(lnz, lhs, llength);
|
|
lnz[llength] = 0;
|
|
|
|
char* rnz = alloca(rlength + 1);
|
|
memcpy(rnz, rhs, rlength);
|
|
rnz[rlength] = 0;
|
|
|
|
int result = (intptr_t) strstr(lnz, rhs);
|
|
|
|
return result;
|
|
}
|
|
|
|
int main() {
|
|
int retcode = 0;
|
|
|
|
printf("Comparing foo and bar\n");
|
|
if(string_compare_guy("foo", 3, "bar", 3)) {
|
|
retcode++;
|
|
printf("failure\n");
|
|
} else {
|
|
printf("passed\n");
|
|
}
|
|
|
|
printf("trying to find foobar in foo\n");
|
|
if(string_compare_guy("foo", 3, "foobar", 6)) {
|
|
retcode++;
|
|
printf("failure\n");
|
|
} else {
|
|
printf("passed\n");
|
|
}
|
|
|
|
printf("trying to find foo in foobar\n");
|
|
if(string_compare_guy("foobar", 3, "foo", 6)) {
|
|
printf("passed\n");
|
|
} else {
|
|
retcode++;
|
|
printf("failure\n");
|
|
}
|
|
|
|
return retcode;
|
|
}
|