TCHAR szFilePath = _T("../../conf/upload/1.txt");去掉倒数第二个/后的数据
时间: 2023-09-15 19:17:33 浏览: 47
您可以使用以下代码去掉路径中倒数第二个 `/`(或 `\`)后的数据:
```
TCHAR szFilePath[MAX_PATH];
_tcscpy_s(szFilePath, _T("../../conf/upload/1.txt"));
TCHAR* p = szFilePath + _tcslen(szFilePath) - 2; // 倒数第二个字符
while (p >= szFilePath && (*p != '/' && *p != '\\')) {
p--;
}
*(p + 1) = '\0';
```
这里使用了指针 `p` 来指向倒数第二个字符,然后向前遍历,直到找到第一个 `/` 或 `\` 为止。最后将该字符后面的部分截断,即可得到去掉倒数第二个 `/`(或 `\`)后的路径。需要注意的是,如果路径中没有 `/` 或 `\`,则该代码会将整个路径截断,只留下路径的根目录部分。
相关问题
TCHAR szFilePath = _T("../../conf/upload/1.txt");去掉倒数第二个'/'后的数据.
您可以使用以下代码去掉路径中倒数第二个 `/` 后的数据:
```
TCHAR szFilePath[MAX_PATH];
_tcscpy_s(szFilePath, _T("../../conf/upload/1.txt"));
TCHAR* p = szFilePath + _tcslen(szFilePath) - 2; // 倒数第二个字符
while (p >= szFilePath && *p != '/') {
p--;
}
*(p + 1) = '\0';
```
这里的代码与前面的代码类似,只是将 `while` 循环中的判断条件从 `(*p != '/' && *p != '\\')` 改为了 `*p != '/'`,这样就只会去掉路径中倒数第二个 `/` 后面的部分。需要注意的是,如果路径中没有 `/`,则该代码会将整个路径截断,只留下路径的根目录部分。
TCHAR szFilePath = _T("../../conf/upload/1.txt");截取掉最后的文件名
您可以使用以下代码来截取掉文件路径中的文件名:
```
TCHAR szFilePath[MAX_PATH];
_tcscpy_s(szFilePath, _T("../../conf/upload/1.txt"));
TCHAR szDir[MAX_PATH];
_tsplitpath_s(szFilePath, NULL, 0, szDir, MAX_PATH, NULL, 0, NULL, 0);
```
这里仍然使用了 `_tsplitpath_s` 函数来分离路径中的目录和文件名,但是只提取了目录部分(即第三个参数,存储在 `szDir` 变量中)。这样就可以得到不包含文件名的路径了。需要注意的是,`_tsplitpath_s` 函数用于分离路径时,不会包含路径分隔符,所以在重新组合路径时,需要手动加上路径分隔符。