memchr
From cppreference.com
| Defined in header <string.h>
|
||
| void* memchr( const void* ptr, int ch, size_t count ); |
||
Finds the first occurrence of (unsigned char)ch in the initial count bytes (each interpreted as unsigned char) of the object pointed to by ptr.
The behavior is undefined if access occurs beyond the end of the array searched. The behavior is undefined if ptr is a null pointer.
|
This function behaves as if it reads the bytes sequentially and stops as soon as a matching bytes is found: if the array pointed to by |
(since C11) |
Parameters
| ptr | - | pointer to the object to be examined |
| ch | - | bytes to search for |
| count | - | max number of bytes to examine |
Return value
Pointer to the location of the byte, or a null pointer if no such byte is found.
Example
Run this code
#include <stdio.h> #include <string.h> int main(void) { const char str[] = "ABCDEFG"; const int chars[] = {'D', 'd'}; for (size_t i = 0; i < sizeof chars / (sizeof chars[0]); ++i) { const int c = chars[i]; const char *ps = memchr(str, c, strlen(str)); ps ? printf ("character '%c'(%i) found: %s\n", c, c, ps) : printf ("character '%c'(%i) not found\n", c, c); } return 0; }
Possible output:
character 'D'(68) found: DEFG character 'd'(100) not found
References
- C17 standard (ISO/IEC 9899:2018):
- 7.24.5.1 The memchr function (p: 267-268)
- C11 standard (ISO/IEC 9899:2011):
- 7.24.5.1 The memchr function (p: 367)
- C99 standard (ISO/IEC 9899:1999):
- 7.21.5.1 The memchr function (p: 330)
- C89/C90 standard (ISO/IEC 9899:1990):
- 4.11.5.1 The memchr function
See also
| finds the first occurrence of a character (function) |