TCHAR * 字符串截取
时间: 2023-11-25 22:51:31 浏览: 212
在VC++编程中,我们可以使用CString类的Mid函数来截取TCHAR类型的字符串。Mid函数的第一个参数是截取的起始位置,第二个参数是截取的字符数。例如,如果我们有一个TCHAR类型的字符串str,想要从第3个字符开始截取5个字符,可以使用以下代码:
```cpp
CString cstr(str);
CString subStr = cstr.Mid(2, 5); // 从第3个字符开始截取5个字符
TCHAR* result = subStr.GetBuffer(); // 获取截取后的TCHAR类型字符串
```
另外,如果想要删除TCHAR类型字符串中的空格,可以使用如下代码:
```cpp
void del_sp(TCHAR *src) {
TCHAR *fp = src;
while (*src) {
if (*src != ' ') {
*fp = *src;
fp++;
}
src++;
}
*fp = '\0';
}
```
相关问题
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++ 特有的函数,如果使用其他编译器可能需要使用其他的函数来实现。
TCHAR lpszFile[] = “c://User//1.tar.gz”;如何截取字符串获得1.tar,c++示例代码
可以使用C++标准库中的字符串处理函数和算法来实现,具体示例代码如下:
```cpp
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
TCHAR lpszFile[] = _T("c://User//1.tar.gz");
int len = _tcslen(lpszFile); // 获取字符串长度
int pos = -1;
for (int i = len - 1; i >= 0; i--) {
if (lpszFile[i] == '/') {
pos = i;
break;
}
}
if (pos != -1) {
string filename(lpszFile + pos + 1); // 截取文件名和扩展名
pos = filename.find_last_of("."); // 找到最后一个'.'的位置
if (pos != string::npos) {
string name = filename.substr(0, pos); // 截取文件名
wcout << name.c_str() << endl; // 输出结果:1.tar
}
}
return 0;
}
```
这段代码首先使用`_tcslen`函数获取字符串长度,然后从字符串末尾开始向前遍历,找到最后一个'/'的位置。接着使用`string`类型的构造函数将TCHAR类型的字符串转换为`string`类型,并使用`string::substr`函数截取文件名和扩展名。再次使用`string::find_last_of`函数找到最后一个'.'的位置,最后使用`string::substr`函数截取文件名。最终输出结果为1.tar。注意,因为`name`是`string`类型,所以需要使用`c_str`函数将其转换为TCHAR类型的字符串再输出。
阅读全文