STRCAT(10.2) STRCAT(10.2)
NAME
strcat, strcmp, strncmp, strcpy, strncpy, strlen, strchr,
strrchr, strdup, strstr - string operations
SYNOPSIS
char* strcat(char *s1, char *s2)
int strcmp(char *s1, char *s2)
int strncmp(char *s1, char *s2, long n)
char* strcpy(char *s1, char *s2)
char* strncpy(char *s1, char *s2, long n)
long strlen(char *s)
char* strchr(char *s, char c)
char* strrchr(char *s, char c)
char* strdup(char *s)
char* strstr(char *s1, char *s2)
DESCRIPTION
The arguments s1, s2 and s point to null-terminated strings.
The functions strcat, strcpy, and strncpy all alter s1.
These functions do not check for overflow of the array
pointed to by s1.
Strcat appends a copy of string s2 to the end of string s1,
and returns a pointer to the null-terminated result.
Strcmp compares its arguments and returns an integer less
than, equal to, or greater than 0, according as s1 is lexi-
cographically less than, equal to, or greater than s2.
Strncmp makes the same comparison but examines at most n
bytes. The comparisons are made with unsigned bytes.
Strcpy copies string s2 to s1, stopping after the null byte
has been copied. Strncpy copies exactly n bytes, truncating
s2 or adding null bytes to s1 if necessary. The result will
not be null-terminated if the length of s2 is n or more.
Each function returns s1.
Strlen returns the number of bytes in s, not including the
terminating null byte.
Strchr (strrchr) returns a pointer to the first (last)
Page 1 Plan 9 (printed 11/3/25)
STRCAT(10.2) STRCAT(10.2)
occurrence of byte c in string s, or `0' if c does not occur
in the string. The null byte terminating a string is con-
sidered to be part of the string.
Strdup returns a pointer to a distinct copy of the null-
terminated string s in space obtained from malloc(10.2) or
`0' if no space can be obtained.
Strstr returns a pointer to the first occurrence of s2 as a
substring of s1, or 0 if there is none. If s2 is the null
string, strstr returns s1.
SOURCE
/libkern/str*.c
/libkern/str*-objtype.c
/lib9/strdup.c
SEE ALSO
memory(10.2), rune(10.2)
BUGS
These routines know nothing about UTF. Use the routines in
rune(10.2) as appropriate. Note, however, that the defini-
tion of UTF guarantees that strcmp compares UTF strings cor-
rectly.
The outcome of overlapping moves varies among implementa-
tions.
Note the absence of ANSI C's strncat, strpbrk, strspn,
strcspn and strtok, but the presence of strdup.
Page 2 Plan 9 (printed 11/3/25)