在C++中,INLINECODEaf235587 是一个预定义函数,我们通常用它来在字符串中查找特定字符的首次出现。这个函数位于 INLINECODE939f57e9 头文件中。
语法:
> // 返回指向字符 c 在 str[] 中
> // 第一次出现的指针
> char strchr(const char str, int c)
值得注意的是,虽然 c 作为 int 类型(整数提升)传入,但它在内部会被处理为 char 类型。
应用
假设在C++中给定一个字符串,我们需要找到某个字符(比如 ‘a‘)第一次出现的位置。
示例:
> 输入: str[] = ‘This is a string‘
> 输出: 9
>
>
>
>
>
> 输入: str[] = ‘My name is Ayush‘
> 输出: 5
算法:
- 将给定的字符串和我们需要查找的字符作为参数传递给
strchr()函数。 - 接收函数返回的值,并计算位置打印出来。
下面是上述算法的实现:
CPP
CODEBLOCK_7aed1f7a
输出
5
strchr() 函数还可以用来检查字符串中是否存在某个字符。输入包括我们想要检查的字符以及目标字符串。
示例: 让我们检查字符 ‘A‘ 和 ‘z‘ 是否存在于字符串 "My name is Ayush" 中。
> 输入: str[] = ‘My name is Ayush‘,
> ch1 = ‘A‘, ch2 = ‘z‘
> 输出: A is present in the string
> z is not present in the string
算法
- 将给定的字符串和要检查的字符作为参数传递给
strchr()函数,并检查返回的值是否为空(NULL)。 - 如果函数返回 NULL 值,这意味着字符串不包含该字符,因此,我们打印相应的声明语句。
- 如果函数返回的值不是 NULL,这意味着字符串包含该字符,因此,我们打印相应的声明语句。
下面是上述算法的实现:
CPP
CODEBLOCK_ba936df6
输出
A is present in string
z is not present in string
C++中的 strrchr()
INLINECODE0f881694 函数与 INLINECODE0fa51583 类似,但该函数返回指向字符串中给定字符最后一次出现位置的指针。
应用:
strrchr() 的一些应用场景包括:
我们可以使用 strchr() 函数来查找 Linux 系统中的绝对目录路径:(由 <a href="https://www.geeksforgeeks.org/user/Ektanehwal/contributions/">Ektanehwal 贡献)
示例:
> 输入: /home/test/sample
> 输出: /home/test
算法:
- 使用
strrchr查找目录路径中最后一个 “/” 的位置。 - 将该位置的字符替换为 NULL 字符(
\0)。
下面是上述算法的实现。基本上,我们要找到 / 的位置,然后将其更改为 \0(null)。
C
CODEBLOCK_6e57729c
输出
/home/test/sample
/home/test