溫馨提示×

c++字符串分割的方法是什么

c++
小億
84
2024-01-04 17:53:34
欄目: 編程語言

在C++中,有多種方法可以將字符串分割為子字符串。下面是一些常見的方法:

  1. 使用字符串流(stringstream):可以使用字符串流將字符串按照指定的分隔符分割成子字符串。首先,包含 <sstream> 頭文件,然后使用 std::getline 函數(shù)和 std::stringstream 類來實(shí)現(xiàn)。
#include <iostream>
#include <sstream>
#include <string>
#include <vector>

int main() {
  std::string str = "Hello,World,Example,String";
  std::stringstream ss(str);
  std::vector<std::string> tokens;
  std::string token;

  while (std::getline(ss, token, ',')) {
    tokens.push_back(token);
  }

  for (const auto& elem : tokens) {
    std::cout << elem << std::endl;
  }

  return 0;
}
  1. 使用字符串的成員函數(shù):C++的字符串類(std::string)提供了一些成員函數(shù)來處理字符串,包括 findsubstr??梢允褂眠@些函數(shù)來遍歷字符串并找到分隔符,然后提取子字符串。
#include <iostream>
#include <string>
#include <vector>

int main() {
  std::string str = "Hello,World,Example,String";
  std::vector<std::string> tokens;
  std::string delimiter = ",";
  size_t pos = 0;

  while ((pos = str.find(delimiter)) != std::string::npos) {
    std::string token = str.substr(0, pos);
    tokens.push_back(token);
    str.erase(0, pos + delimiter.length());
  }

  tokens.push_back(str);

  for (const auto& elem : tokens) {
    std::cout << elem << std::endl;
  }

  return 0;
}

這些方法可以根據(jù)具體情況選擇使用,根據(jù)分隔符的不同,可以調(diào)整代碼中的分隔符參數(shù)。

0