📜  在 C++ 中将 std::字符串转换为 LPCWSTR

📅  最后修改于: 2022-05-13 01:55:05.399000             🧑  作者: Mango

在 C++ 中将 std::字符串转换为 LPCWSTR

C++ 为我们提供了一种工具,使用它可以将字符序列表示为类的对象。这个类是 std:: 字符串。在内部,std:: 字符串类将字符串表示为一系列字符(字节),并且可以使用 []运算符访问每个字符。

字符数组和字符串之间的区别在于,字符数组只是一个以空字符结尾的字符数组,而字符串类是 C++ 库的一部分,它为我们提供了创建可以存储字符串字面量的对象的功能容易地。可以使用以下语法声明和初始化字符串,

句法:

标准::LPCWSTR

LPWCSTR代表指向恒定宽字符串的长指针。它是一个 32 位指针,指向一个由 16 位 Unicode字符组成的常量字符串,该字符串可能以空字符结尾。简而言之,它与字符串相同,但具有宽字符。

句法:

此字符串是 Microsoft 定义的,程序员需要包含 头文件才能使用 LPCWSTR字符串。本文重点介绍如何在 C++(Unicode)中将 std:: 字符串转换为 LPCWSTR。

在 C++ (Unicode) 中将 std::字符串转换为 LPCWSTR

将字符串转换为 LPCWSTR 是一个两步过程。

Step1:第一步是将String类的初始化对象转换为wstring。 std::wstring 用于宽字符/Unicode (UTF-16)字符串。通过将给定字符串的端点迭代器传递给 std::wstring() 初始化程序,可以轻松完成转换。

它返回一个 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;
}


输出: