gpt4 book ai didi

c++ - 提取文件名的子字符串

转载 作者:可可西里 更新时间:2023-11-01 10:54:44 27 4
gpt4 key购买 nike

在 C/C++ 中,如何从 c:\Blabla - dsf\blup\AAA - BBB\blabla.bmp 中提取子字符串 AAA BBB ?

即提取文件名最后一个文件夹中-前后的部分。

提前致谢。

(PS:如果可能的话,如果没有 Framework .net 或类似的东西,我很容易在其中迷路)

最佳答案

#include <iostream>
using namespace std;

#include <windows.h>
#include <Shlwapi.h> // link with shlwapi.lib

int main()
{
char buffer_1[ ] = "c:\\Blabla - dsf\\blup\\AAA - BBB\\blabla.bmp";
char *lpStr1 = buffer_1;

// Remove the file name from the string
PathRemoveFileSpec(lpStr1);
string s(lpStr1);

// Find the last directory name
stringstream ss(s.substr(s.rfind('\\') + 1));

// Split the last directory name into tokens separated by '-'
while (getline(ss, s, '-'))
cout << s << endl;
}

在评论中解释。

这不会修剪前导空格 - 在输出中 - 如果你也想这样做 - 检查 this .

关于c++ - 提取文件名的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16604389/

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