Ruby
2.7.2p137(2020-10-01revision5445e0435260b449decf2ac16f9d09bae3cafe72)
missing
strstr.c
Go to the documentation of this file.
1
/* public domain rewrite of strstr(3) */
2
3
#include "
ruby/missing.h
"
4
5
size_t
strlen
(
const
char
*);
6
7
char
*
8
strstr
(
const
char
*haystack,
const
char
*needle)
9
{
10
const
char
*hend;
11
const
char
*a, *b;
12
13
if
(*needle == 0)
return
(
char
*)haystack;
14
hend = haystack +
strlen
(haystack) -
strlen
(needle) + 1;
15
while
(haystack < hend) {
16
if
(*haystack == *needle) {
17
a = haystack;
18
b = needle;
19
for
(;;) {
20
if
(*b == 0)
return
(
char
*)haystack;
21
if
(*a++ != *b++) {
22
break
;
23
}
24
}
25
}
26
haystack++;
27
}
28
return
0;
29
}
missing.h
strlen
size_t strlen(const char *)
strstr
char * strstr(const char *haystack, const char *needle)
Definition:
strstr.c:8
Generated by
1.8.20