TCHAR和常量字符串拼接
时间: 2023-11-21 18:55:25 浏览: 101
在使用TCHAR和常量字符串拼接时,可以使用_tcscat函数。该函数可以将两个字符串拼接在一起,不论是ANSI还是UNICODE编译。下面是一个例子:
```c++
#include <tchar.h>
#include <iostream>
int _tmain(int argc, _TCHAR* argv[])
{
TCHAR str1[] = _T("Hello");
TCHAR str2[] = _T("World");
_tcscat(str1, str2);
std::wcout << str1 << std::endl; // 输出:HelloWorld
return 0;
}
```
需要注意的是,使用_tcscat函数时,第一个参数必须是可修改的TCHAR数组,否则会导致运行时错误。此外,如果要拼接的字符串中有常量字符串,需要使用_T宏定义将其转换为TCHAR类型。
相关问题
TCHAR * 字符串截取
在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';
}
```
LPWSTR 字符串转 TCHAR字符串
以下是将LPWSTR字符串转换为TCHAR字符串的两种方法:
方法1:使用MultiByteToWideChar和wcstombs函数进行转换
```cpp
#include <iostream>
#include <windows.h>
char* LPWSTRToTCHAR(LPWSTR lpwstr) {
int len = WideCharToMultiByte(CP_ACP, 0, lpwstr, -1, NULL, 0, NULL, NULL);
char* tchar = new char[len];
WideCharToMultiByte(CP_ACP, 0, lpwstr, -1, tchar, len, NULL, NULL);
return tchar;
}
int main() {
LPWSTR lpwstr = L"Hello World"; char* tchar = LPWSTRToTCHAR(lpwstr);
std::cout << "TCHAR string: " << tchar << std::endl;
delete[] tchar;
return 0;
}
```
方法2:使用WideCharToMultiByte函数进行转换
```cpp
#include <iostream>
#include <windows.h>
char* LPWSTRToTCHAR(LPWSTR lpwstr) {
int len = WideCharToMultiByte(CP_ACP, 0, lpwstr, -1, NULL, 0, NULL, NULL);
char* tchar = new char[len];
WideCharToMultiByte(CP_ACP, 0, lpwstr, -1, tchar, len, NULL, NULL);
return tchar;
}
int main() {
LPWSTR lpwstr = L"Hello World";
char* tchar = LPWSTRToTCHAR(lpwstr);
std::cout << "TCHAR string: " << tchar << std::endl;
delete[] tchar;
return 0;
}
```