memchr 在某一内存范围中查找一特定字符

头文件

#include <string.h>

语法

void *memchr( const void *buffer, int ch, size_t count );

功能

函数在 buffer 指向的数组的 count 个字符的字符串里查找 ch 首次出现的位置。返回一个指针,指向 ch 在字符串中首次出现的位置,如果 ch  没有在字符串中找到,返回 NULL。

示例

(1)使用 memchr 函数查找字符数组中是否包含“X”字符,如下:

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

int main() {
    char names[] = "Alan Bob Chris X Dave";
    if( memchr(names,'X',strlen(names)) == NULL ) {
        printf( "Didn't find an X\n" );
    } else {
        printf( "Found an X\n" );
    }
    return 0;
}

输出结果:

Found an X

(2)使用 memchr 函数搜索字符“r”在字符数组中首次出现的位置,如下:

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

int main() {
    char str[17];
    char *ptr;
    strcpy(str, "This is a string");
    ptr = memchr(str, 'r', strlen(str));
    if (ptr) {
        printf("The character 'r' is at position: %d\n", ptr - str);
    } else {
        printf("The character was not found\n");
    }
    return 0;
}

输出结果:

The character 'r' is at position: 12
关于
本网站专注于 Java、数据库(MySQL、Oracle)、Linux、软件架构及大数据等多领域技术知识分享。涵盖丰富的原创与精选技术文章,助力技术传播与交流。无论是技术新手渴望入门,还是资深开发者寻求进阶,这里都能为您提供深度见解与实用经验,让复杂编码变得轻松易懂,携手共赴技术提升新高度。如有侵权,请来信告知:hxstrive@outlook.com
公众号