AVR Libc Home Page | AVR Libc Development Pages | ||||
Main Page | User Manual | Library Reference | FAQ | Alphabetical Index | Example Projects |
#include <string.h>
The string functions perform string operations on NULL terminated strings.
Defines | |
#define | _FFS(x) |
Functions | |
int | ffs (int __val) |
int | ffsl (long __val) |
int | ffsll (long long __val) |
void * | memccpy (void *, const void *, int, size_t) |
void * | memchr (const void *, int, size_t) __ATTR_PURE__ |
int | memcmp (const void *, const void *, size_t) __ATTR_PURE__ |
void * | memcpy (void *, const void *, size_t) |
void * | memmem (const void *, size_t, const void *, size_t) __ATTR_PURE__ |
void * | memmove (void *, const void *, size_t) |
void * | memrchr (const void *, int, size_t) __ATTR_PURE__ |
void * | memset (void *, int, size_t) |
int | strcasecmp (const char *, const char *) __ATTR_PURE__ |
char * | strcasestr (const char *, const char *) __ATTR_PURE__ |
char * | strcat (char *, const char *) |
char * | strchr (const char *, int) __ATTR_PURE__ |
char * | strchrnul (const char *, int) __ATTR_PURE__ |
int | strcmp (const char *, const char *) __ATTR_PURE__ |
char * | strcpy (char *, const char *) |
size_t | strcspn (const char *__s, const char *__reject) __ATTR_PURE__ |
char * | strdup (const char *s1) |
size_t | strlcat (char *, const char *, size_t) |
size_t | strlcpy (char *, const char *, size_t) |
size_t | strlen (const char *) __ATTR_PURE__ |
char * | strlwr (char *) |
int | strncasecmp (const char *, const char *, size_t) __ATTR_PURE__ |
char * | strncat (char *, const char *, size_t) |
int | strncmp (const char *, const char *, size_t) __ATTR_PURE__ |
char * | strncpy (char *, const char *, size_t) |
size_t | strnlen (const char *, size_t) __ATTR_PURE__ |
char * | strpbrk (const char *__s, const char *__accept) __ATTR_PURE__ |
char * | strrchr (const char *, int) __ATTR_PURE__ |
char * | strrev (char *) |
char * | strsep (char **, const char *) |
size_t | strspn (const char *__s, const char *__accept) __ATTR_PURE__ |
char * | strstr (const char *, const char *) __ATTR_PURE__ |
char * | strtok (char *, const char *) |
char * | strtok_r (char *, const char *, char **) |
char * | strupr (char *) |
#define _FFS | ( | x | ) |
This macro finds the first (least significant) bit set in the input value.
This macro is very similar to the function ffs() except that it evaluates its argument at compile-time, so it should only be applied to compile-time constant expressions where it will reduce to a constant itself. Application of this macro to expressions that are not constant at compile-time is not recommended, and might result in a huge amount of code generated.
int ffs | ( | int | val | ) |
This function finds the first (least significant) bit set in the input value.
int ffsl | ( | long | __val | ) |
Same as ffs(), for an argument of type long.
int ffsll | ( | long long | __val | ) |
Same as ffs(), for an argument of type long long.
void * memccpy | ( | void * | dest, | |
const void * | src, | |||
int | val, | |||
size_t | len | |||
) |
Copy memory area.
The memccpy() function copies no more than len bytes from memory area src to memory area dest, stopping when the character val is found.
void * memchr | ( | const void * | src, | |
int | val, | |||
size_t | len | |||
) |
Scan memory for a character.
The memchr() function scans the first len bytes of the memory area pointed to by src for the character val. The first byte to match val (interpreted as an unsigned character) stops the operation.
int memcmp | ( | const void * | s1, | |
const void * | s2, | |||
size_t | len | |||
) |
Compare memory areas.
The memcmp() function compares the first len bytes of the memory areas s1 and s2. The comparision is performed using unsigned char operations.
void * memcpy | ( | void * | dest, | |
const void * | src, | |||
size_t | len | |||
) |
void * memmem | ( | const void * | s1, | |
size_t | len1, | |||
const void * | s2, | |||
size_t | len2 | |||
) |
void * memmove | ( | void * | dest, | |
const void * | src, | |||
size_t | len | |||
) |
void * memrchr | ( | const void * | src, | |
int | val, | |||
size_t | len | |||
) |
The memrchr() function is like the memchr() function, except that it searches backwards from the end of the len
bytes pointed to by src
instead of forwards from the front. (Glibc, GNU extension.)
NULL
if the character does not occur in the given memory area. void * memset | ( | void * | dest, | |
int | val, | |||
size_t | len | |||
) |
int strcasecmp | ( | const char * | s1, | |
const char * | s2 | |||
) |
Compare two strings ignoring case.
The strcasecmp() function compares the two strings s1
and s2
, ignoring the case of the characters.
s1
is found, respectively, to be less than, to match, or be greater than s2
. A consequence of the ordering used by strcasecmp() is that if s1
is an initial substring of s2
, then s1
is considered to be "less than" s2
. char * strcasestr | ( | const char * | s1, | |
const char * | s2 | |||
) |
The strcasestr() function finds the first occurrence of the substring s2
in the string s1
. This is like strstr(), except that it ignores case of alphabetic symbols in searching for the substring. (Glibc, GNU extension.)
NULL
if the substring is not found. If s2
points to a string of zero length, the function returns s1
. char * strcat | ( | char * | dest, | |
const char * | src | |||
) |
Concatenate two strings.
The strcat() function appends the src string to the dest string overwriting the '\0' character at the end of dest, and then adds a terminating '\0' character. The strings may not overlap, and the dest string must have enough space for the result.
char * strchr | ( | const char * | src, | |
int | val | |||
) |
Locate character in string.
The strchr() function returns a pointer to the first occurrence of the character val
in the string src
.
Here "character" means "byte" - these functions do not work with wide or multi-byte characters.
NULL
if the character is not found. char * strchrnul | ( | const char * | s, | |
int | c | |||
) |
The strchrnul() function is like strchr() except that if c
is not found in s
, then it returns a pointer to the null byte at the end of s
, rather than NULL
. (Glibc, GNU extension.)
s
(i.e., s+strlen
(s)) if the character is not found. int strcmp | ( | const char * | s1, | |
const char * | s2 | |||
) |
Compare two strings.
The strcmp() function compares the two strings s1
and s2
.
s1
is found, respectively, to be less than, to match, or be greater than s2
. A consequence of the ordering used by strcmp() is that if s1
is an initial substring of s2
, then s1
is considered to be "less than" s2
. char * strcpy | ( | char * | dest, | |
const char * | src | |||
) |
Copy a string.
The strcpy() function copies the string pointed to by src (including the terminating '\0' character) to the array pointed to by dest. The strings may not overlap, and the destination string dest must be large enough to receive the copy.
size_t strcspn | ( | const char * | s, | |
const char * | reject | |||
) |
The strcspn() function calculates the length of the initial segment of s
which consists entirely of characters not in reject
.
s
which are not in the string reject
. The terminating zero is not considered as a part of string. char * strdup | ( | const char * | s1 | ) |
Duplicate a string.
The strdup() function allocates memory and copies into it the string addressed by s1, including the terminating null character.
size_t strlcat | ( | char * | dst, | |
const char * | src, | |||
size_t | siz | |||
) |
Concatenate two strings.
Appends src to string dst of size siz (unlike strncat(), siz is the full size of dst, not space left). At most siz-1 characters will be copied. Always NULL terminates (unless siz <= strlen(dst)).
size_t strlcpy | ( | char * | dst, | |
const char * | src, | |||
size_t | siz | |||
) |
Copy a string.
Copy src to string dst of size siz. At most siz-1 characters will be copied. Always NULL terminates (unless siz == 0).
size_t strlen | ( | const char * | src | ) |
char * strlwr | ( | char * | s | ) |
int strncasecmp | ( | const char * | s1, | |
const char * | s2, | |||
size_t | len | |||
) |
Compare two strings ignoring case.
The strncasecmp() function is similar to strcasecmp(), except it only compares the first len
characters of s1
.
s1
(or the first len
bytes thereof) is found, respectively, to be less than, to match, or be greater than s2
. A consequence of the ordering used by strncasecmp() is that if s1
is an initial substring of s2
, then s1
is considered to be "less than" s2
. char * strncat | ( | char * | dest, | |
const char * | src, | |||
size_t | len | |||
) |
int strncmp | ( | const char * | s1, | |
const char * | s2, | |||
size_t | len | |||
) |
Compare two strings.
The strncmp() function is similar to strcmp(), except it only compares the first (at most) n characters of s1 and s2.
char * strncpy | ( | char * | dest, | |
const char * | src, | |||
size_t | len | |||
) |
Copy a string.
The strncpy() function is similar to strcpy(), except that not more than n bytes of src are copied. Thus, if there is no null byte among the first n bytes of src, the result will not be null-terminated.
In the case where the length of src is less than that of n, the remainder of dest will be padded with nulls.
size_t strnlen | ( | const char * | src, | |
size_t | len | |||
) |
Determine the length of a fixed-size string.
The strnlen function returns the number of characters in the string pointed to by src, not including the terminating '\0' character, but at most len. In doing this, strnlen looks only at the first len characters at src and never beyond src+len.
char * strpbrk | ( | const char * | s, | |
const char * | accept | |||
) |
The strpbrk() function locates the first occurrence in the string s
of any of the characters in the string accept
.
s
that matches one of the characters in accept
, or NULL
if no such character is found. The terminating zero is not considered as a part of string: if one or both args are empty, the result will NULL
. char * strrchr | ( | const char * | src, | |
int | val | |||
) |
Locate character in string.
The strrchr() function returns a pointer to the last occurrence of the character val in the string src.
Here "character" means "byte" - these functions do not work with wide or multi-byte characters.
char * strrev | ( | char * | s | ) |
char * strsep | ( | char ** | sp, | |
const char * | delim | |||
) |
Parse a string into tokens.
The strsep() function locates, in the string referenced by *sp
, the first occurrence of any character in the string delim
(or the terminating '\0' character) and replaces it with a '\0'. The location of the next character after the delimiter character (or NULL
, if the end of the string was reached) is stored in *sp
. An ``empty'' field, i.e. one caused by two adjacent delimiter characters, can be detected by comparing the location referenced by the pointer returned in *sp
to '\0'.
size_t strspn | ( | const char * | s, | |
const char * | accept | |||
) |
The strspn() function calculates the length of the initial segment of s
which consists entirely of characters in accept
.
s
which consist only of characters from accept
. The terminating zero is not considered as a part of string. char * strstr | ( | const char * | s1, | |
const char * | s2 | |||
) |
Locate a substring.
The strstr() function finds the first occurrence of the substring s2
in the string s1
. The terminating '\0' characters are not compared.
NULL
if the substring is not found. If s2
points to a string of zero length, the function returns s1
. char * strtok | ( | char * | s, | |
const char * | delim | |||
) |
Parses the string s into tokens.
strtok parses the string s into tokens. The first call to strtok should have s as its first argument. Subsequent calls should have the first argument set to NULL. If a token ends with a delimiter, this delimiting character is overwritten with a '\0' and a pointer to the next character is saved for the next call to strtok. The delimiter string delim may be different for each call.
strtok_r()
. char * strtok_r | ( | char * | string, | |
const char * | delim, | |||
char ** | last | |||
) |
Parses string into tokens.
strtok_r parses string into tokens. The first call to strtok_r should have string as its first argument. Subsequent calls should have the first argument set to NULL. If a token ends with a delimiter, this delimiting character is overwritten with a '\0' and a pointer to the next character is saved for the next call to strtok_r. The delimiter string delim may be different for each call. last is a user allocated char* pointer. It must be the same while parsing the same string. strtok_r is a reentrant version of strtok().
char * strupr | ( | char * | s | ) |
Convert a string to upper case.
The strupr() function will convert a string to upper case. Only the lower case alphabetic characters [a .. z] are converted. Non-alphabetic characters will not be changed.