本文章介绍了C语言中的两个常用函数strchr()和strrchr(),它们用于在字符串中查找第一个或最后一个出现的特定字符,并返回指向该字符的指针。
查找特定字符在C语言编程中是一个常见的任务。`strchr()` 和 `strrchr()` 是两个非常实用的函数,它们分别用于查找字符串中指定字符首次出现的位置和最后一次出现的位置。
首先来看一下`strchr()`函数。这个函数定义在 `` 头文件中,并且其原型如下:
```c
char *strchr(const char *str, int c);
```
这里的 `str` 参数是你想要搜索的字符串,而 `c` 则是你要查找的具体字符。当使用该函数时,它会遍历整个字符串(包括终止符0),直到找到第一个匹配的字符或者完成对整个字符串的扫描。如果找到了匹配的字符,则返回指向该字符在原字符串中的地址;如果没有找到则返回 NULL。
举个例子来说明如何使用`strchr()`:假设我们有一个字符串 `s = 012345678901234567890123456789`,并且想要查找字符 5 首次出现的位置。代码如下:
```c
#include
#include
int main() {
char *s = 012345678901234567890123456789;
char *p;
p = strchr(s, 5);
// 输出字符串和找到的字符位置
printf(%pn, (void *) s);
printf(%pn, (void *) p);
return 0;
}
```
在这个例子中,`strchr()` 返回的指针 `p` 将指向字符串中的第一个5的位置。
接下来是关于 `strrchr()` 的介绍。这个函数定义在相同的 `` 头文件中,并且其原型如下:
```c
char *strrchr(const char *str, int c);
```
与 `strchr()` 不同,`strrchr()` 会在字符串从后向前查找匹配的字符。如果找到了匹配的字符,则返回指向该字符在原字符串中的地址;如果没有找到则同样返回 NULL。
例如,如果我们想要找出字符串中 5 最后一次出现的位置(假设我们使用相同的例子),我们可以这样写:
```c
#include
#include
int main() {
char *s = 012345678901234567890123456789;
char *p;
p = strrchr(s, 5);
// 输出字符串和找到的字符位置
printf(%pn, (void *) s);
printf(%pn, (void *) p);
return 0;
}
```
在这个例子中,`strrchr()` 返回的指针 `p` 将指向最后一个5的位置。
总结一下,这两个函数在处理字符串时都非常有用。它们帮助程序员高效地定位特定字符的位置,并且对于需要进行复杂文本操作的应用程序来说是必不可少的功能之一。