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 27 char* 28 strchr( 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 39 char* 40 strrchr( 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 */ 61