memchr()函数
C语言string.h标准库中的memchr()函数,可以用于查找参数指定的字符在参数指定的字符串中的前n个字节中第一次出现的位置。具体的参数可参考下方的语法。
memchr()函数语法:
void *memchr( const void *str, int ch, size_t n )
memchr()参数
参数 描述
str C风格字符串
ch 所要查找的字符
n size_t类型,指定查找的前n个字节,注意是字节,而不是索引,二者有质的区别,C语言中字符串的字节,尤其是遍历字符串中有关字节的注意点可参考前面章节中的:C语言 用奇奇怪怪的代码统计字符串字符个数,还怪好用的
memchr()返回值
如果字符ch存在于字符串str的前n个字节内,则返回指向第一次出现的位置的指针,这其实是一个包含ch字符在内的字符数组,而且是str除了ch之前的字符之外的剩余的字符数组,如果没有出现,则返回NULL。
memchr()函数实例代码
因为memchr()返回的是指向ch字符的位置的指针,并不是索引,然后通过%s来格式化输出该指针指向的字符数组:
#include <stdio.h>
#include <string.h>
int main() {
char str[] = "Hello,World!";
// 获取字符'o'在字符串中的位置
int *newStr = memchr(str,'o',strlen(str)-1);
// 该指针指向的其实是包含'o'在内的(字符串)剩余的字符数组
if(newStr!=NULL){
printf("%s\n",newStr);
}
int *pos = memchr(str,'a',strlen(str)-1);
if(pos == NULL){
printf("没有找到字符'a'\n");
}
return 0;
}
代码编译运行,得到输出并输入:
o,World!
没有找到字符'a'
免责声明:内容仅供参考,不保证正确性。 |