在 C++ 中将 std::字符串转换为 LPCWSTR
C++ 为我们提供了一种工具,使用它可以将字符序列表示为类的对象。这个类是 std:: 字符串。在内部,std:: 字符串类将字符串表示为一系列字符(字节),并且可以使用 []运算符访问每个字符。
字符数组和字符串之间的区别在于,字符数组只是一个以空字符结尾的字符数组,而字符串类是 C++ 库的一部分,它为我们提供了创建可以存储字符串字面量的对象的功能容易地。可以使用以下语法声明和初始化字符串,
句法:
string str = “GeeksforGeeks”;
标准::LPCWSTR
LPWCSTR代表指向恒定宽字符串的长指针。它是一个 32 位指针,指向一个由 16 位 Unicode字符组成的常量字符串,该字符串可能以空字符结尾。简而言之,它与字符串相同,但具有宽字符。
句法:
LPCWSTR str = “GeeksforGeeks”;
此字符串是 Microsoft 定义的,程序员需要包含
在 C++ (Unicode) 中将 std::字符串转换为 LPCWSTR
将字符串转换为 LPCWSTR 是一个两步过程。
Step1:第一步是将String类的初始化对象转换为wstring。 std::wstring 用于宽字符/Unicode (UTF-16)字符串。通过将给定字符串的端点迭代器传递给 std::wstring() 初始化程序,可以轻松完成转换。
std::wstring(str.begin(), str.end())
它返回一个 wstring 对象。
第 2 步:下一步是对返回的 wstring 对象(从第 1 步获得)应用 c_str() 方法。它将返回等效的 LPCWSTR字符串。上面的过程已经通过下面的源代码进行了演示。
下面是实现上述方法的 C++ 程序——
C++
// C++ program to illustrate how to
// convert std:: string to LPCWSTR
#include
#include
using namespace std;
int main()
{
// Initializing a string object
string str = "GeeksforGeeks";
// Initializing an object of wstring
wstring temp = wstring(str.begin(), str.end());
// Applying c_str() method on temp
LPCWSTR wideString = temp.c_str();
// Print strings
cout << "str is : " << str << endl;
wcout << "wideString is : "
<< wideString << endl;
}
输出:
str is: “GeeksforGeeks”
wideString is: “GeeksforGeeks”