Hàm memchr() trong C

Hàm void *memchr(const void *str, int c, size_t n) tìm kiếm sự xuất hiện đầu tiên của ký tự c (một unsigned char) trong n byte đầu tiên của chuỗi được trỏ tới bởi tham số str.

Khai báo hàm memchr() trong C

Dưới đây là phần khai báo cho memchr() trong C:

void *memchr(const void *str, int c, size_t n)

Tham số

str — Đây là con trỏ tới khối bộ nhớ nơi mà việc tìm kiếm được thực hiện.

c — Đây là giá trị để được truyền dưới dạng một int, nhưng hàm thực hiện tìm kiếm theo từng byte bởi sử dụng sự chuyển đổi unsigned char của giá trị này.

n — Đây là số byte để được phân tích.

Trả về giá trị

Hàm này trả về một con trỏ tới byte kết nối hoặc NULL nếu ký tự không xuất hiện trong khu vực bộ nhớ đã cho.

Ví dụ

Chương trình C sau minh họa cách sử dụng của memchr() trong C:

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

int main ()
{
  char * pch;
  char str[] = "Hoc C co ban va nang cao tai QTM";
  pch = (char*) memchr (str, 'v', strlen(str));
  if (pch!=NULL)
    printf ("Tim thay 'v' tai vi tri %d.\n", pch-str+1);
  else
    printf ("Khong tim thay ky tu 'v'.\n");
  return 0;
}

Biên dịch và chạy chương trình C trên sẽ cho kết quả: