C++ Strpbrk() 函数

2024 年 8 月 29 日 | 4 分钟阅读

在 C++ 中,有大量预构建的函数和库可用于处理字符串。Strpbrk() 是一个鲜为人知但非常有用的例程。该函数是 <cstring> 头文件的一部分,属于 C 标准库。它的主要目的是在字符串中查找一组特定的字符。

  • 函数 strpbrk() 的主要目标是在字符串中查找给定字符组中任意字符的第一个实例。如果集合中的字符不存在,函数将生成一个空指针。否则,它返回一个指向检测到的字符位置的指针。
  • C++ STL 字符串函数 strpbrk() 接收两个字符串作为输入,并确定 string1 中 string2 中每个字符的第一个出现位置。如果 string1 中存在 string2 的字符,此函数返回一个指向它的指针;如果不存在,则返回 NULL

语法

它具有以下语法:

参数的详细说明如下:

  • str: 这是您要查找字符的字符串。
  • charset: 包含您要查找的字符的字符串。

示例 1

让我们看一个例子来说明 C++ 中的 strpbrk() 函数

输出

First vowel found at position: 1

说明

  • 在这个例子中,我们将“Hello, World!”这个字符串初始化到常量字符数组“text”中。
  • 之后,我们定义第二个常量字符数组“vowels”,其中包含所有元音字母,包括大写和小写。
  • 使用 strpbrk() 函数,在“text”字符串中搜索“vowels”字符串中每个字符的第一个实例。传递给函数的两个参数是“text”字符串(要查找的文本)和“vowels”字符串(要查找的字符)。
  • 调用 strpbrk() 函数后,我们检查搜索结果以查看是否找到了任何匹配的字符。
  • 如果 'strpbrk()' 识别出匹配的字符,我们从 'result' 指针中减去 'text' 指针,以确定该字符在 'text' 字符串中的位置。它为我们提供了 'text' 字符串中第一个元音的索引。
  • 如果“strpbrk()”函数无法找到对应的字符,我们将输出一条消息,说明该字符串不包含任何元音。
  • 最后,我们返回 0 以表示程序已成功运行。
  • 在这种情况下,strpbrk() 通过简化在字符串中查找字符集合的过程,提供了一种直接的方法来定位给定文本中的第一个元音。

示例 2

让我们看另一个例子来说明 C++ 中的 strpbrk() 函数

输出

First matching character in str1 is r at position 2

说明

  • 在此示例中,我们定义了两个字符数组 'str1''str2'。'str1' 包含字符串 "Article",而 'str2' 包含字符串 "strpbrk"。
  • 之后,我们定义指针 'pos',它将保存 strpbrk() 函数的结果。如果找到匹配字符,此指针将指向 'str1' 中的该字符。
  • 我们使用 strpbrk() 方法在 'str1' 中查找 'str2' 中任意字符的第一个实例。传递给函数的两个参数是 'str1' 文本(要查找的文本)和 'str2' 字符串(要搜索的字符)。
  • 调用 strpbrk() 后,我们将结果与 NULL 进行比较,以查看是否找到了任何匹配的字符。
  • 如果 'strpbrk()' 识别出相应的字符,则会打印该字符 (*pos) 及其在 'str1' 中的位置。通过从 'pos' 指针中减去 'str1' 指针并加 1 来获得基于 1 的位置。
  • 如果 'strpbrk()' 无法找到匹配项,我们将打印一条消息,说明未找到该字符。
  • 最后,我们返回 0 以表示程序已成功运行。
  • 在这种情况下,strpbrk() 通过在匹配成功时提供字符及其在 'str1' 中的位置,使在 'str1' 中查找来自 'str2' 的第一个字符变得更容易。

实际用例:-

C++ 中的 strpbrk() 函数有多种用例。C++ 中 strpbrk() 函数的一些主要用例如下:

1. 分词:-

  • 将字符串分解成更小的部分或标记的实践称为分词
  • 您可以通过使用 strpbrk() 指定一组分隔符来对字符串进行分词。
  • 例如,您可以使用标点符号和空格作为分隔符将语句分解成单词。

2. 输入验证:-

  • 当您期望用户输入特定字符时,使用 strpbrk() 查看用户输入是否包含您不希望的任何字符。
  • 它有助于规范和安全的数据验证。

3. 提取子字符串:-

  • 使用 strpbrk() 函数在较长的字符串中查找特定的子字符串。
  • 例如,如果您想从包含字母“a”的文本中提取所有单词,您可以使用 strpbrk() 来查找单词边界。

4. 自定义字符串操作:-

  • strpbrk() 是更复杂的字符串操作活动中的一个有用工具。
  • 例如,您可以通过将其与其他方法结合来对字符串执行自定义转换。