比较字符串和LPWSTR类型的2个字符串
Compare 2 strings of type string and LPWSTR
我想比较string
,例如"Tedt2.csv"
和&value
,后者是函数声明中的LPWSTR
。这是我工作的基本代码:
PWSTR value = nullptr;
HRESULT hr = properties->GetStringValue(key, &value);
我测试了很多方法,比如
if (wcsstr(&value, L"Tedt2.csv") == 0)
{
wprintf(L"%ws: %wsn", keyName, value);
}
但它总是进入CCD_ 5。
有人能帮帮我吗?这应该很琐碎,但我有点迷上了C++。我必须做一个概念的证明。
wcsstr()
在字符串中搜索字符串,不执行字符串比较。如果在lhs中未找到rhs,则返回NULL
。在此上下文中的0
将被转换为空指针,并且当在value
中未找到"Tedt2.csv"
时,将进入if
分支。改为使用wcscmp()
:
if (wcscmp(value, L"Tedt2.csv") == 0)
{ // ^ remove & also
}
或者使用提供operator==()
:的std::wstring
#include <string>
const std::wstring search_string(L"Tedt2.csv");
if (search_string == value)
{
}
并且不带&
if (wcsstr(value, L"Tedt2.csv") == 0)
... make something when "Tedt2.csv" not appear in value
您的value
是一个指针。您正在将一个指针传递给一个指针,但您需要一个指针
wchar_t *wcsstr( wchar_t *str, const wchar_t *strSearch ); // C++ only
相关文章:
- 删除一个线程上有数百万个字符串的大型哈希映射会影响另一个线程的性能
- 两个字符串在 c++ 中不相等
- 为字符串中每 N 个字符插入空格的函数没有按照我认为的方式工作?
- 构造<int>具有 2 个字符串文字的向量
- 当我尝试添加 2 个大字符串时,我无法弄清楚出了什么问题
- 移除前面有空格的前2个字符串
- 将stl字符串缩小到小于15个字符的容量
- 有哪些有效的方法可以消除一组 100 万个字符串>重复数据?
- 具有多个模板的模板函数,用于特定数据类型(如字符串)?
- 在C++的两个字符串中连接以逗号分隔的唯一值
- 将字符串拆分为标记,并将标记拆分为两个单独的数组
- 如何从文件中读取两个字符串和数字数组,并将它们存储在对象向量中
- c++ 构造函数 将 1 个字符串参数转换为 3 个属性
- 如何从字符串C++读取多个整数
- 比较两个字符串后卡在无限循环中
- 如何输出字符串第二个单词的第一个字母?
- 在C++中,有没有获得字符串第一个字符的最佳实践
- 将固定长度的短字符串(52个字符)压缩到小于40个
- 用这种方式比较字符串是个好方法吗
- 如何通过 bash shell 输入 c++ 字符串 >= 1024 个字符?