c++ - 获取 QString 的一部分

标签 c++ qt indexof qstring

我如何从这个 QString 中获取值 "Recording.mp3"

C:/Users/Admin/AppData/Local/Temp/AudelloTemp/Recording.mp3

如果我使用 lastIndexof('/') 函数,那么它会向后搜索最后一次出现的地方

如果我使用 indexof('/') 函数,它会向前搜索第一次出现的地方。

我没有办法得到它。

或者是使用循环获取该值的唯一方法?

最佳答案

鉴于它是一个文件路径,而您正在寻找文件名,正确的方法是这样的:

// When you have this:
QString s("C:/Users/Admin/AppData/Local/Temp/AudelloTemp/Recording.mp3");

// Do this:

QFileInfo f(s);
QString s1 = f.fileName();
// now s1 is "Recording.mp3"

不过,要按措辞回答您的问题,要使用的 QString 成员函数将是 lastIndexOf()。您误读了文档:它不会“向后搜索最后一次出现”,它“通过向后搜索来查找字符串中的最后一次出现”。因此,在您的情况下,它确实会返回 /AudelloTempRecording.mp3 分开。

关于c++ - 获取 QString 的一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21278294/

相关文章:

c++ - 执行 memcpy 时内存泄漏

c++ - 为什么模板只能在头文件中实现?

c++ - 如何通过 CSS 设置 QTableView 单元格的填充?

java: 'string index out of range: -1' 异常使用 indexOf()

c++ - 错误:无法开始调试。命令 “-exec-run”的意外GDB输出。找不到进程ID 1401的Mach任务端口

c++ - wcslen 或 strlen 应该防止无限循环?

qt - 在 QML 中创建带有动态参数的 ListView

c++ - 在类中初始化QHash

Javascript 数组方法查找超过第一个值的 indexOf

javascript indexOf Array在浏览器上的不同结果