]> git.saurik.com Git - apple/libc.git/blame - string/FreeBSD/strstr.3
Libc-1158.1.2.tar.gz
[apple/libc.git] / string / FreeBSD / strstr.3
CommitLineData
5b2abdfb
A
1.\" Copyright (c) 2001 Mike Barcroft <mike@FreeBSD.org>
2.\" Copyright (c) 1990, 1991, 1993
3.\" The Regents of the University of California. All rights reserved.
4.\"
5.\" This code is derived from software contributed to Berkeley by
6.\" Chris Torek and the American National Standards Committee X3,
7.\" on Information Processing Systems.
8.\"
9.\" Redistribution and use in source and binary forms, with or without
10.\" modification, are permitted provided that the following conditions
11.\" are met:
12.\" 1. Redistributions of source code must retain the above copyright
13.\" notice, this list of conditions and the following disclaimer.
14.\" 2. Redistributions in binary form must reproduce the above copyright
15.\" notice, this list of conditions and the following disclaimer in the
16.\" documentation and/or other materials provided with the distribution.
5f125488 17.\" 3. Neither the name of the University nor the names of its contributors
5b2abdfb
A
18.\" may be used to endorse or promote products derived from this software
19.\" without specific prior written permission.
20.\"
21.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
22.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
25.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
26.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
27.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
28.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
29.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
30.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
31.\" SUCH DAMAGE.
32.\"
33.\" @(#)strstr.3 8.1 (Berkeley) 6/4/93
5f125488 34.\" $FreeBSD$
5b2abdfb
A
35.\"
36.Dd October 11, 2001
37.Dt STRSTR 3
38.Os
39.Sh NAME
5f125488 40.Nm strstr , strcasestr , strnstr
5b2abdfb
A
41.Nd locate a substring in a string
42.Sh LIBRARY
43.Lb libc
44.Sh SYNOPSIS
45.In string.h
46.Ft char *
974e3884 47.Fn strstr "const char *haystack" "const char *needle"
5b2abdfb 48.Ft char *
974e3884 49.Fn strcasestr "const char *haystack" "const char *needle"
5b2abdfb 50.Ft char *
974e3884 51.Fn strnstr "const char *haystack" "const char *needle" "size_t len"
ad3c9f2a
A
52.In string.h
53.In xlocale.h
54.Ft char *
974e3884 55.Fn strcasestr_l "const char *haystack" "const char *needle" "locale_t loc"
5b2abdfb
A
56.Sh DESCRIPTION
57The
58.Fn strstr
59function
60locates the first occurrence of the null-terminated string
974e3884 61.Fa needle
5b2abdfb 62in the null-terminated string
974e3884 63.Fa haystack .
5b2abdfb
A
64.Pp
65The
66.Fn strcasestr
67function is similar to
68.Fn strstr ,
69but ignores the case of both strings.
70.Pp
71The
72.Fn strnstr
73function
74locates the first occurrence of the null-terminated string
974e3884 75.Fa needle
5b2abdfb 76in the string
974e3884 77.Fa haystack ,
5b2abdfb 78where not more than
5f125488 79.Fa len
5b2abdfb
A
80characters are searched.
81Characters that appear after a
82.Ql \e0
83character are not searched.
84Since the
85.Fn strnstr
86function is a
87.Fx
9385eb3d 88specific API, it should only be used when portability is not a concern.
ad3c9f2a
A
89.Pp
90While the
91.Fn strcasestr
92function uses the current locale, the
93.Fn strcasestr_l
94function may be passed a locale directly. See
95.Xr xlocale 3
96for more information.
5b2abdfb
A
97.Sh RETURN VALUES
98If
974e3884 99.Fa needle
5b2abdfb 100is an empty string,
974e3884 101.Fa haystack
5b2abdfb
A
102is returned;
103if
974e3884 104.Fa needle
5b2abdfb 105occurs nowhere in
974e3884 106.Fa haystack ,
9385eb3d
A
107.Dv NULL
108is returned;
5b2abdfb 109otherwise a pointer to the first character of the first occurrence of
974e3884 110.Fa needle
5b2abdfb
A
111is returned.
112.Sh EXAMPLES
113The following sets the pointer
114.Va ptr
115to the
9385eb3d 116.Qq Li Bar Baz
5b2abdfb
A
117portion of
118.Va largestring :
119.Bd -literal -offset indent
120const char *largestring = "Foo Bar Baz";
121const char *smallstring = "Bar";
122char *ptr;
123
124ptr = strstr(largestring, smallstring);
125.Ed
126.Pp
127The following sets the pointer
128.Va ptr
9385eb3d
A
129to
130.Dv NULL ,
131because only the first 4 characters of
5b2abdfb
A
132.Va largestring
133are searched:
134.Bd -literal -offset indent
135const char *largestring = "Foo Bar Baz";
136const char *smallstring = "Bar";
137char *ptr;
138
139ptr = strnstr(largestring, smallstring, 4);
140.Ed
141.Sh SEE ALSO
142.Xr memchr 3 ,
5f125488 143.Xr memmem 3 ,
5b2abdfb
A
144.Xr strchr 3 ,
145.Xr strcspn 3 ,
146.Xr strpbrk 3 ,
147.Xr strrchr 3 ,
148.Xr strsep 3 ,
149.Xr strspn 3 ,
1f2f436a 150.Xr strtok 3 ,
ad3c9f2a
A
151.Xr wcsstr 3 ,
152.Xr xlocale 3
5b2abdfb
A
153.Sh STANDARDS
154The
155.Fn strstr
156function
157conforms to
158.St -isoC .