c语言中查找值的函数62


在C语言中,有几个内置函数可以用来查找数组或字符串中的值。最常用的函数是strchr()和strstr(),用于字符串,以及memchr()和memmem(),用于数组。

strchr() 函数

strchr()函数在指定的字符串中查找第一个匹配指定字符的位置。原型如下:```c
char *strchr(const char *str, int c);
```

str:需要查找字符的字符串。
c:要查找的字符,作为整数表示。

如果找到该字符,strchr()返回指向其位置的指针。如果找不到,则返回NULL。

strstr() 函数

strstr()函数在指定的字符串中查找第一个匹配指定子字符串的位置。原型如下:```c
char *strstr(const char *str, const char *substr);
```

str:需要查找子字符串的字符串。
substr:要查找的子字符串。

如果找到该子字符串,strstr()返回指向其位置的指针。如果找不到,则返回NULL。

memchr() 函数

memchr()函数在指定的内存块中查找第一个匹配指定值的字节。原型如下:```c
void *memchr(const void *ptr, int c, size_t n);
```

ptr:需要查找值的内存块。
c:要查找的值,作为整数表示。
n:需要查找的内存块的字节数。

如果找到该值,memchr()返回指向其位置的指针。如果找不到,则返回NULL。

memmem() 函数

memmem()函数在指定的内存块中查找第一个匹配指定子字符串的位置。原型如下:```c
void *memmem(const void *ptr, size_t len, const void *substr, size_t sublen);
```

ptr:需要查找子字符串的内存块。
len:需要查找的内存块的字节数。
substr:要查找的子字符串。
sublen:子字符串的字节数。

如果找到该子字符串,memmem()返回指向其位置的指针。如果找不到,则返回NULL。

示例

以下示例展示了如何使用这些函数来查找值:```c
#include
#include
int main() {
char str[] = "Hello world";
char c = 'o';
char *result;
// 使用 strchr() 查找第一个字符 'o'
result = strchr(str, c);
if (result != NULL) {
printf("第一个字符 'o' 在 %ld 位置被找到。", (long)(result - str));
} else {
printf("未找到字符 'o'。");
}
// 使用 strstr() 查找子字符串 "world"
result = strstr(str, "world");
if (result != NULL) {
printf("子字符串 world 在 %ld 位置被找到。", (long)(result - str));
} else {
printf("未找到子字符串 world。");
}
return 0;
}
```

输出:```
第一个字符 'o' 在 4 位置被找到。
子字符串 "world" 在 6 位置被找到。
```

2024-11-29


上一篇:C 语言将数组输出到文件

下一篇:c语言中输出地址值符号 (&)