3

我在 C++ 中有一个这样的字符串:"dirname/filename.ini". 我需要在/.
我怎样才能做到这一点?

4

3 回答 3

12

使用findsubstr方法来自std::string.

std::string fullpath = "dirname/filename.ini";
int beginIdx = fullpath.rfind('/');
std::string filename = fullpath.substr(beginIdx + 1);
于 2012-07-17T11:53:06.180 回答
9

要扩展 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);
}
于 2012-07-17T11:59:26.963 回答
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);
  }
于 2019-11-03T16:32:42.997 回答