如何在 C++ 中分割字符串?

17 Mar 2025 | 6 分钟阅读

本主题将讨论如何在 C++ 编程语言中将给定的字符串分割成单个单词。当我们把一组单词或字符串集合分割成单个单词时,这被称为字符串的分割或划分。然而,分割字符串只能通过一些分隔符,如空格 ( )、逗号 (,)、连字符 (-) 等,将单词分解成独立的个体。此外,没有预定义的分割函数来将字符串集合分割成单个字符串。因此,在这里我们将学习在 C++ 中将字符串分割成单个字符串的不同方法。

How to Split strings in C++

在 C++ 中实现字符串分割的不同方法

  1. 使用 strtok() 函数分割字符串
  2. 使用自定义 split() 函数分割字符串
  3. 使用 std::getline() 函数分割字符串
  4. 使用 find() 和 substr() 函数分割字符串

使用 strtok() 函数分割字符串

strtok(): strtok() 函数用于根据传递的分隔符将原始字符串分割成片段或标记。

语法

在上述语法中,strtok() 有两个参数,strdelim

str:str 是 strtok() 函数用来分割字符串的原始字符串。

delim:它是一个用于分割字符串的字符。例如,逗号 (,)、空格 ( )、连字符 (-) 等。

返回:它返回一个指向下一个字符标记的指针。最初,它指向字符串的第一个标记。

注意:strtok() 函数会修改原始字符串,并在每次调用 strtok() 函数时在分隔符位置放置一个 NULL 字符 ('\0')。通过这种方式,它可以轻松跟踪标记的状态。

使用 strtok() 函数分割字符串的程序

让我们考虑一个使用 strtok() 函数在 C++ 中分割字符串的例子。

Program.cpp

输出

Enter a string:
Learn how to split a string in C++ using the strtok() function.

 Split string using strtok() function:
Learn
how
to
split
a
string
in
C++
Using
the
strtok()
function.

使用自定义 split() 函数分割字符串的程序

让我们编写一个程序,使用自定义 split() 函数在 C++ 中分割字符串序列。

Program2.cpp

输出

The split string is:
 i : 0 Program
 i : 1 to
 i : 2 split
 i : 3 strings
 i : 4 using
 i : 5 custom
 i : 6 split
 i : 7 function.

使用 std::getline() 函数分割字符串

getline() 函数是 C++ 的标准库函数,用于从输入流中读取字符串并将其放入字符串向量中,直到找到分隔符。我们可以通过导入 <string> 头文件来使用 std::getline() 函数。

语法

它有三个参数

str: str 是存储原始字符串的变量。

token: 它存储从原始字符串中提取的字符串标记。

delim: 它是一个用于分割字符串的字符。例如,逗号 (,)、空格 ( )、连字符 (-) 等。

使用 getline() 函数分割字符串的程序

让我们考虑一个使用 getline() 函数在 C++ 中分割字符串的例子。

Program3.cpp

输出

Welcome to the JavaTpoint and Learn C++ Programming Language.
Welcome
to
the
JavaTpoint
and
Learn
C++
Programming
Language.

使用 getline() 函数分割给定字符串的程序

让我们考虑一个使用 getline() 函数在 C++ 中分割给定字符串的例子。

Program4.cpp

输出

Your given string is: Learn How to split a string in C++
Learn
How
to
split
a
string
in
C++

使用 find() 和 substr() 函数分割字符串

让我们编写一个程序,使用 find() 函数和 substr() 函数在 C++ 中分割给定的字符串。

Program4.cpp

输出

Your string with delimiter is: How_to_split_a_string_using_find()_and_substr()_function_in_C++
How
to
split
a
string
using
find()
and
substr()
function
in
C++

在上述程序中,我们在循环内部使用 find() 函数重复查找给定字符串中分隔符的出现,然后在分隔符出现时将其分割成标记。substr() 函数存储要打印的子字符串。另一方面,erase() 函数存储字符串的当前位置并移动到下一个标记,这个过程一直持续到我们获得所有分割的字符串。