6.20.3 memchr Function

Locates a character in a buffer.

Include

<string.h>

Prototype

void *memchr(const void *s, int c, size_t n);

Arguments

s
pointer to the buffer
c
character to search for
n
number of characters to check

Return Value

Returns a pointer to the location of the match if successful; otherwise, returns NULL.

Remarks

memchr stops when it finds the first occurrence of c, or after searching n number of characters.

Example

See the notes at the beginning of this chapter or section for information on using printf() or scanf() (and other functions reading and writing the stdin or stdout streams) in the example code.

#include <string.h>
#include <stdio.h>

int main(void)
{
  char buf1[50] = "What time is it?";
  char ch1 = 'i', ch2 = 'y';
  char *ptr;
  int res;
  printf("buf1 : %s\n\n", buf1);

  ptr = memchr(buf1, ch1, 50);
if (ptr != NULL)
  {
   res = ptr - buf1 + 1;
   printf("%c found at position %d\n", ch1, res);
  }
  else
    printf("%c not found\n", ch1);
  printf("\n");

  ptr = memchr(buf1, ch2, 50);
if (ptr != NULL)
  {
    res = ptr - buf1 + 1;
    printf("%c found at position %d\n", ch2, res);
  }
  else
    printf("%c not found\n", ch2);
}

Example Output

buf1 : What time is it?

i found at position 7

y not found