21xrx.com
2024-05-20 07:43:04 Monday
登录
文章检索 我的文章 写文章
C++字符串分割(split)
2023-07-12 22:58:39 深夜i     --     --
C++ 字符串 分割 split 处理

C++是一种强大的编程语言,可以进行多种操作和计算。其中,字符串分割是一种常见的操作,也称为split操作。该操作是将一个字符串拆分成多个子字符串,以便进行其他操作。在C++编程中,实现字符串分割可以使用多种方法。

一种常见的方法是使用字符串流。字符串流是一种特殊的流类型,可以用于操作字符串。要使用字符串流进行分割操作,需要包含头文件 ,并使用以下代码:


#include<sstream>

#include<iostream>

#include<vector>

using namespace std;

vector<string> split(string input, char delimiter)

{

  vector<string> output;

  stringstream ss(input);

  string item;

  while (getline(ss, item, delimiter))

    output.push_back(item);

  return output;

}

int main()

{

  string input = "Hello,World,How,Are,You,Today";

  char delimiter = ',';

  vector<string> result = split(input, delimiter);

  for (int i = 0; i < result.size(); i++)

    cout << result[i] << endl;

  return 0;

}

在上述代码中,使用了split函数来实现字符串分割操作。该函数接受两个参数:输入字符串和分隔符(delimiter)。在函数内部,使用了字符串流来将输入字符串转换为字符串流,并使用getline函数来逐行获取字符串流中的字符,直到遇到分隔符。一旦发现分隔符,将分隔符前的字符串加入到输出vector中。

另一种方法是使用C++标准库中的find和substr函数。这种方法通常比字符串流更快,但代码略微复杂。使用该方法时,可以使用以下代码:


#include<iostream>

#include<vector>

using namespace std;

vector<string> split(string input, char delimiter)

{

  vector<string> output;

  size_t pos = 0;

  string token;

  while ((pos = input.find(delimiter)) != string::npos) {

    token = input.substr(0, pos);

    output.push_back(token);

    input.erase(0, pos + 1);

  }

  output.push_back(input);

  return output;

}

int main() {

  string input = "Hello,World,How,Are,You,Today";

  char delimiter = ',';

  vector<string> result = split(input, delimiter);

  for (int i = 0; i < result.size(); i++)

    cout << result[i] << endl;

  return 0;

}

在上述代码中,使用了split函数来实现字符串分割操作。该函数接受两个参数:输入字符串和分隔符(delimiter)。在函数内部,使用了find函数来查找字符串中的分隔符位置,然后使用substr函数来获取分隔符前的字符串。在找到分隔符位置并获取到相应子串后,使用erase函数来删除原始字符串中已经获得的部分,以便进一步查找。

通过使用上述方法之一,C++开发人员可以在他们的程序中实现字符串分割,以便更轻松地执行其他任务。这些技术非常实用,并且值得每个C++开发人员掌握。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复