---
name: "strchrnul"
section: "3"
platform: "freebsd"
package: "base"
version: "16.0-CURRENT-20261027-61c70dc16a79"
release: "FreeBSD 16.0-CURRENT (2026-10-27)"
platforms: ["linux", "freebsd"]
url: "https://new.carta.tech/strchr"
---

# strchrnul(3)

locate character in string

Part of [strchr(3)](/strchr/3.md).

## NAME

**strchr**, **strrchr**, **strchrnul** – locate character in string

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*QChar \**\

**strchr**(*QChar \*s*, *int c*);

*QChar \**\

**strrchr**(*QChar \*s*, *int c*);

*QChar \**\

**strchrnul**(*QChar \*s*, *int c*);

## DESCRIPTION

The **strchr**() function locates the first occurrence of *c* (converted to a *char*) in the string pointed to by *s*. The terminating null character is considered part of the string; therefore if *c* is ‘\\0’, the functions locate the terminating ‘\\0’.

The **strrchr**() function is identical to **strchr**() except it locates the last occurrence of *c*.

The **strchrnul**() function is identical to **strchr**() except that if *c* is not found in *s* a pointer to the terminating ‘\\0’ is returned.

## RETURN VALUES

The functions **strchr**() and **strrchr**() return a pointer to the located character, or NULL if the character does not appear in the string.

**strchrnul**() returns a pointer to the terminating ‘\\0’ if the character does not appear in the string.

## SEE ALSO

[memchr(3)](/memchr/3.md), [memmem(3)](/memmem/3.md), [strcspn(3)](/strcspn/3.md), [strpbrk(3)](/strpbrk/3.md), [strsep(3)](/strsep/3.md), [strspn(3)](/strspn/3.md), [strstr(3)](/strstr/3.md), [strtok(3)](/strtok/3.md), [wcschr(3)](/wcschr/3.md)

## STANDARDS

The functions **strchr**() and **strrchr**() conform to ISO/IEC 9899:2024 (“ISO C23”), where they are specified as qualifier-preserving functions.

The function **strchrnul**() is a GNU extension. Like the qualifier-preserving functions in ISO/IEC 9899:2024 (“ISO C23”), FreeBSD implements **strchrnul**() as qualifier-preserving as well.

## HISTORY

The **strchrnul**() function first appeared in glibc 2.1.1 and was added in FreeBSD 10.0.
