char lpszFile[] = “c://User//1.tar.gz”;如何截取字符串获得1.tar
时间: 2023-12-07 11:04:37 浏览: 135
可以使用类似的方法来截取字符串,只需要稍微修改一下即可。
使用 strtok 函数的示例代码如下:
```cpp
char* filename = "c://User//1.tar.gz";
char* basename = strtok(filename, "//");
while (basename != NULL) {
filename = basename;
basename = strtok(NULL, "//");
}
basename = strtok(filename, ".");
cout << basename << endl; // 输出 1.tar
```
使用 sscanf 函数的示例代码如下:
```cpp
char* filename = "c://User//1.tar.gz";
char basename[100];
sscanf(filename, "%*[^/]//%*[^/]//%[^.].*", basename);
cout << basename << endl; // 输出 1.tar
```
两种方法都可以得到字符串 "1.tar",你可以根据自己的需要选择使用哪种方法。需要注意的是,sscanf 函数的返回值是成功匹配并赋值的变量个数,因此这里应该返回1。
相关问题
LPCTSTR lpszFile = “c://User//1.tar.gz”;如何截取字符串获得1.tar
可以使用字符串截取函数来实现,可以使用 substr 函数或者 strtok 函数。
使用 substr 函数的示例代码如下:
```cpp
string filename = "c://User//1.tar.gz";
string basename = filename.substr(filename.find_last_of("//") + 1);
basename = basename.substr(0, basename.find_last_of("."));
cout << basename << endl; // 输出 1.tar
```
使用 strtok 函数的示例代码如下:
```cpp
char* filename = "c://User//1.tar.gz";
char* basename = strtok(filename, "//");
while (basename != NULL) {
filename = basename;
basename = strtok(NULL, "//");
}
basename = strtok(filename, ".");
cout << basename << endl; // 输出 1.tar
```
两种方法都可以得到字符串 "1.tar",你可以根据自己的需要选择使用哪种方法。
TCHAR lpszFile[] = “c://User//1.tar.gz”;如何截取字符串获得1.tar
可以使用类似的方法来截取字符串,只需要稍微修改一下即可。需要注意的是,由于 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++ 特有的函数,如果使用其他编译器可能需要使用其他的函数来实现。
阅读全文