UbixOS
2.0
strstr.c
Go to the documentation of this file.
1
/*-
2
* Copyright (c) 2002-2018 The UbixOS Project.
3
* All rights reserved.
4
*
5
* This was developed by Christopher W. Olsen for the UbixOS Project.
6
*
7
* Redistribution and use in source and binary forms, with or without modification, are permitted
8
* provided that the following conditions are met:
9
*
10
* 1) Redistributions of source code must retain the above copyright notice, this list of
11
* conditions, the following disclaimer and the list of authors.
12
* 2) Redistributions in binary form must reproduce the above copyright notice, this list of
13
* conditions, the following disclaimer and the list of authors in the documentation and/or
14
* other materials provided with the distribution.
15
* 3) Neither the name of the UbixOS Project nor the names of its contributors may be used to
16
* endorse or promote products derived from this software without specific prior written
17
* permission.
18
*
19
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED
20
* WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
21
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS
22
* BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
23
* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA,
24
* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
25
* CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
26
* OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
*/
28
29
#include <
sys/cdefs.h
>
30
#include <
sys/types.h
>
31
32
char
*
strstr
(
const
char
*s,
const
char
*find) {
33
char
c, sc;
34
size_t
len;
35
36
if
((c = *find++) != 0) {
37
len =
strlen
(find);
38
do
{
39
do
{
40
if
((sc = *s++) == 0)
41
return
(
NULL
);
42
}
while
(sc != c);
43
}
while
(
strncmp
(s, find, len) != 0);
44
s--;
45
}
46
return
(
__DECONST
(
char
*, s));
47
}
strlen
int strlen(const char *str)
Definition:
strlen.c:55
strstr
char * strstr(const char *s, const char *find)
Definition:
strstr.c:32
types.h
__DECONST
#define __DECONST(type, var)
Definition:
cdefs.h:650
cdefs.h
strncmp
int strncmp(const char *str1, const char *str2, int len)
NULL
#define NULL
Definition:
fat_string.h:17
lib
strstr.c
Generated by
1.8.16