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