strchr.c revision 290001
1/*
2   SYNOPSIS
3       #include <string.h>
4
5       char *strchr(char const *s, int c);
6
7       char *strrchr(char const *s, int c);
8
9   DESCRIPTION
10       The  strchr() function returns a pointer to the first occurrence of the
11       character c in the string s.
12
13       The strrchr() function returns a pointer to the last occurrence of  the
14       character c in the string s.
15
16       Here  "character"  means "byte" - these functions do not work with wide
17       or multi-byte characters.
18
19   RETURN VALUE
20       The strchr() and strrchr() functions return a pointer  to  the  matched
21       character or NULL if the character is not found.
22
23   CONFORMING TO
24       SVID 3, POSIX, BSD 4.3, ISO 9899
25*/
26
27static char *
28strchr(char const *s, int c);
29
30static char *
31strrchr(char const *s, int c);
32
33static char *
34strchr(char const *s, int c)
35{
36    do {
37        if ((unsigned char)*s == (unsigned char)c)
38            return s;
39
40    } while (*(++s) != NUL);
41
42    return NULL;
43}
44
45static char *
46strrchr(char const *s, int c)
47{
48    char const *e = s + strlen(s);
49
50    for (;;) {
51        if (--e < s)
52            break;
53
54        if ((unsigned char)*e == (unsigned char)c)
55            return e;
56    }
57    return NULL;
58}
59
60/*
61 * Local Variables:
62 * mode: C
63 * c-file-style: "stroustrup"
64 * indent-tabs-mode: nil
65 * End:
66 * end of compat/strsignal.c */
67