用/拆分C ++字符串

时间:2012-07-17 11:52:39

标签: c++ string

我在C ++中有一个字符串,如下所示:"dirname/filename.ini"。我需要在/之后得到所有内容 我怎么能这样做?

3 个答案:

答案 0 :(得分:11)

使用find中的substrstd::string方法。

std::string fullpath = "dirname/filename.ini";
int beginIdx = fullpath.rfind('/');
std::string filename = fullpath.substr(beginIdx + 1);

答案 1 :(得分:6)

要扩展Luchian的回答,如果路径可以包含正向或反斜杠字符,请使用std::string::find_last_of()

const int idx = fullpath.find_last_of("\\/");
if (std::string::npos != idx)
{
    std::string filename(fullpath.substr(idx + 1);
}

答案 2 :(得分:0)

这是我用来分割字符串的方法。它也适用于多次出现的定界符:

  char delimiter = '/';
  std::string tmp = "", originalString = "this/might/be/it";
  std::vector<std::string> parts;

  std::istringstream iss(originalString);
  while(std::getline(iss, tmp, delimiter)) {
    parts.push_back(tmp);
  }