- C 标准库
- C 库 - 首页
- C 库 - <assert.h>
- C 库 - <complex.h>
- C 库 - <ctype.h>
- C 库 - <errno.h>
- C 库 - <fenv.h>
- C 库 - <float.h>
- C 库 - <inttypes.h>
- C 库 - <iso646.h>
- C 库 - <limits.h>
- C 库 - <locale.h>
- C 库 - <math.h>
- C 库 - <setjmp.h>
- C 库 - <signal.h>
- C 库 - <stdalign.h>
- C 库 - <stdarg.h>
- C 库 - <stdbool.h>
- C 库 - <stddef.h>
- C 库 - <stdio.h>
- C 库 - <stdlib.h>
- C 库 - <string.h>
- C 库 - <tgmath.h>
- C 库 - <time.h>
- C 库 - <wctype.h>
- C 标准库资源
- C 库 - 快速指南
- C 库 - 有用资源
- C 库 - 讨论
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
广告