---
name: "index"
section: "3"
platform: "macos"
package: "Libc"
version: "1752.120.2"
release: "macOS 26.5"
platforms: ["linux", "freebsd", "macos"]
url: "https://new.carta.tech/index/3"
---

# index(3)

locate character in string

## NAME

**index**, **rindex** – locate character in string

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*char \**\

**index**(*const char \*s*, *int c*);

*char \**\

**rindex**(*const char \*s*, *int c*);

## DESCRIPTION

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

The **rindex**() function is identical to **index**(), except that it locates the last occurrence of *c*.

## RETURN VALUES

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

## SEE ALSO

[memchr(3)](/memchr/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), [strstr(3)](/strstr/3.md), [strtok(3)](/strtok/3.md)

## HISTORY

The **index**() and **rindex**() functions appeared in Version 6 AT&T UNIX. Their prototypes existed previously in ⟨string.h⟩ before they were moved to ⟨strings.h⟩ for IEEE Std 1003.1-2001 (“POSIX.1”) compliance.
