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

# string(3)

string specific functions

## NAME

**index**, **rindex**, **stpcpy**, **strcasecmp**, **strcat**, **strchr**, **strcmp**, **strcpy**, **strcspn**, **strerror**, **strlen**, **strncasecmp**, **strncat**, **strncmp**, **strncpy**, **strpbrk**, **strrchr**, **strsep**, **strspn**, **strstr**, **strtok** – string specific functions

## LIBRARY

Standard C Library (libc, -lc)

## SYNOPSIS

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

*char* *\**\

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

*char* *\**\

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

*int*\

**strcasecmp**(*const char \*s1*, *const char \*s2*);

*int*\

**strncasecmp**(*const char \*s1*, *const char \*s2*, *size\_t n*);

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

*char* *\**\

**stpcpy**(*char \*dst*, *const char \*src*);

*char* *\**\

**strcat**(*char \*restrict s1*, *const char \*restrict s2*);

*char* *\**\

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

*int*\

**strcmp**(*const char \*s1*, *const char \*s2*);

*char* *\**\

**strcpy**(*char \*restrict s1*, *const char \*restrict s2*);

*size\_t*\

**strcspn**(*const char \*s1*, *const char \*s2*);

*char* *\**\

**strerror**(*int errnum*);

*size\_t*\

**strlen**(*const char \*s*);

*char* *\**\

**strncat**(*char \*restrict s1*, *const char \*restrict s2*, *size\_t n*);

*int*\

**strncmp**(*const char \*s1*, *const char \*s2*, *size\_t n*);

*char* *\**\

**strncpy**(*char \*restrict s1*, *const char \*restrict s2*, *size\_t n*);

*char* *\**\

**strpbrk**(*const char \*s1*, *const char \*s2*);

*char* *\**\

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

*char* *\**\

**strsep**(*char \*\*stringp*, *const char \*delim*);

*size\_t*\

**strspn**(*const char \*s1*, *const char \*s2*);

*char* *\**\

**strstr**(*const char \*s1*, *const char \*s2*);

*char* *\**\

**strtok**(*char \*restrict s1*, *const char \*restrict s2*);

## DESCRIPTION

The string functions manipulate strings that are terminated by a null byte.

See the specific manual pages for more information. For manipulating variable length generic objects as byte strings (without the null byte check), see [bstring(3)](/bstring/3.md).

Except as noted in their specific manual pages, the string functions do not test the destination for size limitations.

## SEE ALSO

[bstring(3)](/bstring/3.md), [index(3)](/index/3.md), [rindex(3)](/rindex/3.md), [stpcpy(3)](/stpcpy/3.md), [strcasecmp(3)](/strcasecmp/3.md), [strcat(3)](/strcat/3.md), [strchr(3)](/strchr/3.md), [strcmp(3)](/strcmp/3.md), [strcpy(3)](/strcpy/3.md), [strcspn(3)](/strcspn/3.md), [strerror(3)](/strerror/3.md), [strlen(3)](/strlen/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)

## STANDARDS

The **strcat**(), **strncat**(), **strchr**(), **strrchr**(), **strcmp**(), **strncmp**(), **strcpy**(), **strncpy**(), **strerror**(), **strlen**(), **strpbrk**(), **strspn**(), **strcspn**(), **strstr**(), and **strtok**() functions conform to ISO/IEC 9899:1990 (“ISO C90”).
