C++中的strchr()函数及其应用

在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
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/43761.html
点赞
0.00 平均评分 (0% 分数) - 0