C 庫 - memchr() 函式



C 庫函式 memchr() 型別為 void,接受三個引數,在引數 str 指向的字串的前 n 個位元組中搜索字元 c(一個無符號字元)的第一次出現。

語法

以下是 C 庫 memchr() 函式的語法:

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

引數

此函式接受以下引數:

  • str − 這是執行搜尋的記憶體塊的指標。

  • c − 此值為 int 型別,但函式使用此值的無符號字元轉換執行逐位元組搜尋。

  • n − 這是要分析的位元組數。

返回值

如果字元在給定的記憶體區域中不存在,則此函式返回指向匹配位元組的指標或 NULL。

示例 1

以下是 C 庫程式,用於演示 memchr() 函式。

#include <stdio.h>
#include <string.h>
int main () 
{
   const char str[] = "Tutorialspoint";
   const char ch = '.';
   char *ret;
   ret = memchr(str, ch, strlen(str));
   printf("String after |%c| is - |%s|\n", ch, ret);
   return(0);
}

輸出

以上程式碼產生以下輸出:

String after |.| is - |.tutorialspoint.com|

示例 2

該程式使用 memchr() 比較兩個字串,並確定它們是否相等。

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

int main() {
   const char str1[] = "abcdef";
   const char ch = 'd';

   char* result = (char*)memchr(str1, ch, strlen(str1));

   if (result != NULL) {
       printf("'%c' found at position %ld\n", ch, result - str1);
   } else {
       printf("'%c' not found in the string\n", ch);
   }

   return 0;
}

輸出

執行上述程式碼後,我們得到以下輸出:

'd' found at position 3

示例 3

下面的程式使用 memchr() 在給定字串中搜索特定字元。

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

int main() {
   const char str[] = "Welcome to India";
   const char ch = 't';

   char* result = (char*)memchr(str, ch, strlen(str));

   if (result != NULL) {
       printf("'%c' found at position %ld\n", ch, result - str);
   } else {
       printf("'%c' not found in the string\n", ch);
   }
   
   return 0;
}

輸出

執行上述程式碼後,我們得到以下輸出:

't' found at position 8
廣告