---
name: "strnstr"
section: "3"
platform: "linux"
package: "libbsd-dev"
version: "0.8.3-1"
release: "Debian 9 (Stretch)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/strnstr"
---

# strnstr(3)

locate a substring in a string

## NAME

**strnstr** – locate a substring in a string

## LIBRARY

library “libbsd”

## SYNOPSIS

**#include \<bsd/string.h\>**

*char* *\**\

**strnstr**(*const char \*big*, *const char \*little*, *size\_t len*);

## DESCRIPTION

The **strnstr**() function locates the first occurrence of the null-terminated string *little* in the string *big*, where not more than *len* characters are searched. Characters that appear after a ‘\\0’ character are not searched. Since the **strnstr**() function is a FreeBSD specific API, it should only be used when portability is not a concern.

## RETURN VALUES

If *little* is an empty string, *big* is returned; if *little* occurs nowhere in *big*, NULL is returned; otherwise a pointer to the first character of the first occurrence of *little* is returned.

## EXAMPLES

The following sets the pointer *ptr* to NULL, because only the first 4 characters of *largestring* are searched:

```
const char *largestring = "Foo Bar Baz";
const char *smallstring = "Bar";
char *ptr;
ptr = strnstr(largestring, smallstring, 4);
```

## SEE ALSO

[strstr(3)](/strstr/3.md), [strcasestr(3)](/strcasestr/3.md), [memchr(3)](/memchr/3.md), [memmem(3)](/memmem/3.md), [strchr(3)](/strchr/3.md), [strcspn(3)](/strcspn/3.md), [strpbrk(3)](/strpbrk/3.md), [strrchr(3)](/strrchr/3.md), [strsep(3)](/strsep/3.md), [strspn(3)](/strspn/3.md), [strtok(3)](/strtok/3.md), [wcsstr(3)](/wcsstr/3.md)
