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