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. 17.\" 4. Neither the name of the University nor the names of its contributors 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 34.\" $FreeBSD: src/lib/libc/string/strstr.3,v 1.14 2007/01/09 00:28:12 imp Exp $ 35.\" $DragonFly: src/lib/libc/string/strstr.3,v 1.5 2005/08/05 22:35:10 swildner Exp $ 36.\" 37.Dd October 11, 2001 38.Dt STRSTR 3 39.Os 40.Sh NAME 41.Nm strstr , 42.Nm strcasestr , 43.Nm strnstr 44.Nd locate a substring in a string 45.Sh LIBRARY 46.Lb libc 47.Sh SYNOPSIS 48.In string.h 49.Ft char * 50.Fn strstr "const char *big" "const char *little" 51.Ft char * 52.Fn strcasestr "const char *big" "const char *little" 53.Ft char * 54.Fn strnstr "const char *big" "const char *little" "size_t len" 55.Sh DESCRIPTION 56The 57.Fn strstr 58function 59locates the first occurrence of the null-terminated string 60.Fa little 61in the null-terminated string 62.Fa big . 63.Pp 64The 65.Fn strcasestr 66function is similar to 67.Fn strstr , 68but ignores the case of both strings. 69.Pp 70The 71.Fn strnstr 72function 73locates the first occurrence of the null-terminated string 74.Fa little 75in the string 76.Fa big , 77where not more than 78.Fa len 79characters are searched. 80Characters that appear after a 81.Ql \e0 82character are not searched. 83Since the 84.Fn strnstr 85function is a 86.Fx 87/ 88.Dx 89specific API, it should only be used when portability is not a concern. 90.Sh RETURN VALUES 91If 92.Fa little 93is an empty string, 94.Fa big 95is returned; 96if 97.Fa little 98occurs nowhere in 99.Fa big , 100.Dv NULL 101is returned; 102otherwise a pointer to the first character of the first occurrence of 103.Fa little 104is returned. 105.Sh EXAMPLES 106The following sets the pointer 107.Va ptr 108to the 109.Qq Li Bar Baz 110portion of 111.Va largestring : 112.Bd -literal -offset indent 113const char *largestring = "Foo Bar Baz"; 114const char *smallstring = "Bar"; 115char *ptr; 116 117ptr = strstr(largestring, smallstring); 118.Ed 119.Pp 120The following sets the pointer 121.Va ptr 122to 123.Dv NULL , 124because only the first 4 characters of 125.Va largestring 126are searched: 127.Bd -literal -offset indent 128const char *largestring = "Foo Bar Baz"; 129const char *smallstring = "Bar"; 130char *ptr; 131 132ptr = strnstr(largestring, smallstring, 4); 133.Ed 134.Sh SEE ALSO 135.Xr memchr 3 , 136.Xr memmem 3 , 137.Xr strchr 3 , 138.Xr strcspn 3 , 139.Xr strpbrk 3 , 140.Xr strrchr 3 , 141.Xr strsep 3 , 142.Xr strspn 3 , 143.Xr strtok 3 144.Sh STANDARDS 145The 146.Fn strstr 147function 148conforms to 149.St -isoC . 150