aboutsummaryrefslogtreecommitdiff
path: root/lib/libc/string/strrchr.c
blob: ccfaa9fcf33f75ed5779cd81660b41b715ce7b47 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/******************************************************************************
 * libc strrchr() implementation
 *
 * This program and the accompanying materials are made available under
 * the terms of the BSD License which accompanies this distribution, and
 * is available at http://www.opensource.org/licenses/bsd-license.php
 *
 * Contributors:
 *     Thomas Huth - initial implementation
 *****************************************************************************/

#include <string.h>

char *
strrchr(const char *s, int c)
{
	char cb = c;
	char *ptr = (char *)s + strlen(s) - 1;

	while (ptr >= s) {
		if (*ptr == cb) {
			return ptr;
		}
		--ptr;
	}

	return NULL;
}