PageRenderTime 19ms CodeModel.GetById 15ms app.highlight 2ms RepoModel.GetById 1ms app.codeStats 0ms

/contrib/ntp/sntp/libopts/compat/strchr.c

https://bitbucket.org/freebsd/freebsd-head/
C | 60 lines | 21 code | 7 blank | 32 comment | 8 complexity | bc138a897f9d80855ac4d81f30b41d0f MD5 | raw file
 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
27char*
28strchr( char const *s, int c)
29{
30    do {
31        if ((unsigned)*s == (unsigned)c)
32            return s;
33
34    } while (*(++s) != NUL);
35
36    return NULL;
37}
38
39char*
40strrchr( char const *s, int c)
41{
42    char const *e = s + strlen(s);
43
44    for (;;) {
45        if (--e < s)
46            break;
47
48        if ((unsigned)*e == (unsigned)c)
49            return e;
50    }
51    return NULL;
52}
53
54/*
55 * Local Variables:
56 * mode: C
57 * c-file-style: "stroustrup"
58 * indent-tabs-mode: nil
59 * End:
60 * end of compat/strsignal.c */