diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-04-07 13:59:14 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2021-12-09 16:37:33 +0100 |
commit | b8b6e4ec9b9e363cc2825cc454394dfb5b0f2166 (patch) | |
tree | 4cbc288f72521408b5cb2bdd298eb6f8424adf75 /cpukit/libc/string/strrchr.c | |
parent | 82607efe0bd962fef4eef34ae4df278623cfe042 (diff) |
build: FIXME introduce pre-qualified parts
Diffstat (limited to 'cpukit/libc/string/strrchr.c')
-rw-r--r-- | cpukit/libc/string/strrchr.c | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/cpukit/libc/string/strrchr.c b/cpukit/libc/string/strrchr.c new file mode 100644 index 0000000000..04897e162a --- /dev/null +++ b/cpukit/libc/string/strrchr.c @@ -0,0 +1,52 @@ +/* +FUNCTION + <<strrchr>>---reverse search for character in string + +INDEX + strrchr + +SYNOPSIS + #include <string.h> + char * strrchr(const char *<[string]>, int <[c]>); + +DESCRIPTION + This function finds the last occurence of <[c]> (converted to + a char) in the string pointed to by <[string]> (including the + terminating null character). + +RETURNS + Returns a pointer to the located character, or a null pointer + if <[c]> does not occur in <[string]>. + +PORTABILITY +<<strrchr>> is ANSI C. + +<<strrchr>> requires no supporting OS subroutines. + +QUICKREF + strrchr ansi pure +*/ + +#include <string.h> + +char * +strrchr (const char *s, + int i) +{ + const char *last = NULL; + + if (i) + { + while ((s=strchr(s, i))) + { + last = s; + s++; + } + } + else + { + last = strchr(s, i); + } + + return (char *) last; +} |