blob: 92ea5e5f7f77b39fd13d2061379f6bc289ed71bd [file] [log] [blame]
Joel Kitchinga1b15172020-03-12 18:15:34 +08001/* SPDX-License-Identifier: GPL-2.0-only */
2
Eric Biederman8ca8d762003-04-22 19:02:15 +00003#ifndef STRING_H
4#define STRING_H
5
Elyes Haouas35c3ae3b2022-10-27 12:25:12 +02006#include <stdarg.h> /* IWYU pragma: export */
Eric Biederman8ca8d762003-04-22 19:02:15 +00007#include <stddef.h>
Elyes Haouas35c3ae3b2022-10-27 12:25:12 +02008#include <stdio.h> /* IWYU pragma: export */
David Hendricks6053a9c2018-01-28 18:01:10 -08009
Stefan Reinauera91e0fe2008-08-01 11:39:35 +000010void *memcpy(void *dest, const void *src, size_t n);
11void *memmove(void *dest, const void *src, size_t n);
12void *memset(void *s, int c, size_t n);
13int memcmp(const void *s1, const void *s2, size_t n);
Gabe Black1025f3a2011-09-16 02:18:56 -070014void *memchr(const void *s, int c, size_t n);
Thomas Heijligen92043552019-01-29 12:48:01 +010015char *strdup(const char *s);
16char *strconcat(const char *s1, const char *s2);
Julius Wernera66c9b82019-05-20 14:53:47 -070017size_t strnlen(const char *src, size_t max);
18size_t strlen(const char *src);
19char *strchr(const char *s, int c);
20char *strncpy(char *to, const char *from, int count);
21char *strcpy(char *dst, const char *src);
22int strcmp(const char *s1, const char *s2);
23int strncmp(const char *s1, const char *s2, int maxlen);
Yuji Sasaki6b212d82019-06-12 17:42:19 -070024int strspn(const char *str, const char *spn);
25int strcspn(const char *str, const char *spn);
Jes Klinke683ac6f2020-07-31 09:58:49 -070026char *strstr(const char *haystack, const char *needle);
harshit7a6f27c2020-05-15 10:40:02 +053027char *strtok_r(char *str, const char *delim, char **ptr);
28char *strtok(char *str, const char *delim);
Yuji Sasaki6b212d82019-06-12 17:42:19 -070029long atol(const char *str);
Eric Biederman8ca8d762003-04-22 19:02:15 +000030
Patrick Rudolph03c7b052018-03-29 10:05:34 +020031/**
32 * Find a character in a string.
33 *
34 * @param s The string.
35 * @param c The character.
36 * @return A pointer to the last occurrence of the character in the
37 * string, or NULL if the character was not encountered within the string.
38 */
Julius Wernera66c9b82019-05-20 14:53:47 -070039char *strrchr(const char *s, int c);
Patrick Rudolph03c7b052018-03-29 10:05:34 +020040
Julius Wernera66c9b82019-05-20 14:53:47 -070041/*
42 * Parses an unsigned integer and moves the input pointer forward to the first
43 * character that's not a valid digit. s and *s must not be NULL. Result
44 * undefined if it overruns the return type size.
45 */
46unsigned int skip_atoi(char **s);
Stefan Reinauer36c83402009-03-01 10:16:01 +000047
Eric Biederman8ca8d762003-04-22 19:02:15 +000048#endif /* STRING_H */