TCHAR lpszFile[] = “c://User//1.tar.gz”;如何截取字符串获得1.tar
时间: 2023-12-07 12:04:37 浏览: 33
可以使用类似的方法来截取字符串,只需要稍微修改一下即可。需要注意的是,由于 TCHAR 可以是 char 或 wchar_t,因此需要根据具体情况选择合适的函数。
使用 _tcstok_s 函数的示例代码如下:
```cpp
TCHAR* filename = _T("c://User//1.tar.gz");
TCHAR* next_token = NULL;
TCHAR* basename = _tcstok_s(filename, _T("//"), &next_token);
while (basename != NULL) {
filename = basename;
basename = _tcstok_s(NULL, _T("//"), &next_token);
}
basename = _tcstok_s(filename, _T("."), &next_token);
_tprintf(_T("%s\n"), basename); // 输出 1.tar
```
使用 _stscanf_s 函数的示例代码如下:
```cpp
TCHAR* filename = _T("c://User//1.tar.gz");
TCHAR basename[100];
_stscanf_s(filename, _T("%*[^/]//%*[^/]//%[^.].*"), basename);
_tprintf(_T("%s\n"), basename); // 输出 1.tar
```
两种方法都可以得到字符串 "1.tar",你可以根据自己的需要选择使用哪种方法。需要注意的是,_tcstok_s 和 _stscanf_s 都是 Microsoft Visual C++ 特有的函数,如果使用其他编译器可能需要使用其他的函数来实现。