Ruby
3.5.0dev (2025-01-10 revision 5fab31b15e32622c4b71d1d347a41937e9f9c212)
missing
strstr.c
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
}
Generated by
1.9.8