如何在 C++ 中通过多个分隔符拆分字符串?

17 Mar 2025 | 4 分钟阅读

在编程中,拆分字符串是一个非常常见的情况。在解决许多问题或优化程序时,程序员会遇到拆分字符串的问题。在 C++ 中可以通过多种方式实现。不同的方法将带来不同的时间和空间复杂度。本文将介绍一些使用分隔符拆分字符串的可能方法。

分隔符是用于标记句子边界的字符。它们在阅读某些文本时很有帮助。有时,它们用于表达句子的某些含义。一些分隔符包括空格、逗号、问号、冒号、分号、连字符、斜杠、下划线、制表符、感叹号等。

示例 1

让我们举一些例子来演示如何通过多个分隔符拆分字符串。

字符串:Hurry! We won the match, It is an achievement.

分隔符:!,.

输出

Hurry

We won the match

It is an achievement

示例 2

字符串:Have a nice day

分隔符:空格

输出

Have

a

nice

日期

下面是一些拆分字符串的不同方法。

  • 使用 std::istringstream 和 std::getline()

让我们举一个例子来演示如何在 C++ 中使用 std::istringstream()std::getline() 方法通过多个分隔符拆分字符串。

输出

How to Split a String by Multiple Delimiters in C++

说明

此程序将使用存储在向量中的分隔符来拆分静态字符串。这里,isstringstream 用于遍历每个单词,并使用 getline() 函数拆分单词。

  • 使用 std::regex

让我们举一个例子来演示如何在 C++ 中使用 std::regex() 方法通过多个分隔符拆分字符串。

输出

How to Split a String by Multiple Delimiters in C++

说明

此程序使用正则表达式在 C++ 中拆分字符串。通常,分隔符存储在向量 a 中,并使用正则表达式来识别字符串中的分隔符并进行拆分。

  • 使用 std::string::find_first_of() 和 std::string::substr()

让我们举一个例子来演示如何在 C++ 中使用 std::string::find_first_of()std::string::substr() 方法通过多个分隔符拆分字符串。

输出

How to Split a String by Multiple Delimiters in C++

说明

此程序是拆分字符串的另一种方法。在这里,我们遍历 input.find,即分隔符的位置,然后从字符串中提取标记。之后,我们将子字符串推送到结果向量中,其中分隔符已被删除。

  • 使用 Boost.Tokenizer

让我们举一个例子来演示如何在 C++ 中使用 Boost.Tokenizer() 方法通过多个分隔符拆分字符串。

输出

How to Split a String by Multiple Delimiters in C++

说明

此程序使用 Boost.Tokenizer 来拆分输入,这里是静态字符串,通过分隔符向量中指定的分隔符。首先,它创建分词器对象,然后使用该对象并给出通过多个分隔符拆分后的字符串。

  • 使用空格作为分隔符拆分字符串

让我们举一个例子来演示如何在 C++ 中使用空格作为分隔符通过多个分隔符拆分字符串。

输出

How to Split a String by Multiple Delimiters in C++

结论

总之,本文将提供一些有效拆分字符串的方法。这些程序都与 C++ 有关。C++ 没有特定的内置函数可以使用分隔符拆分字符串。因此,这些方法在 C++ 语言编程中处理字符串时很有帮助。