gpt4 book ai didi

strrchr 的 C++ 字符串等效项

转载 作者:太空狗 更新时间:2023-10-29 19:58:27 26 4
gpt4 key购买 nike

使用 C 字符串,我将编写以下代码以从文件路径获取文件名:

#include <string.h>

const char* filePath = "dir1\\dir2\\filename"; // example
// extract file name (including extension)
const char* fileName = strrchr(progPath, '\\');
if (fileName)
++fileName;
else
fileName = filePath;

如何对 C++ 字符串做同样的事情? (即使用 std::string 来自 #include <string> )

最佳答案

最接近的等价物是 rfind :

#include <string>

std::string filePath = "dir1\\dir2\\filename"; // example
// extract file name (including extension)
std::string::size_type filePos = filePath.rfind('\\');
if (filePos != std::string::npos)
++filePos;
else
filePos = 0;
std::string fileName = filePath.substr(filePos);

请注意,rfind 返回字符串的索引(或 npos),而不是指针。

关于strrchr 的 C++ 字符串等效项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21254728/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com