我正在使用wcscmp()
比较两个unicode字符串。它们不同,但是wcscmp()
返回true。我正在使用Visual Studio 2019。
#include <iostream>
int main()
{
auto ddd = L"HP 24f Display";
auto eee = L"122fff";
bool gggg = wcscmp(ddd, eee);
std::cout << "Hello World!\n";
}
答案 0 :(得分:3)
wcscmp()
函数返回一个整数值,而不是布尔值。如果两个字符串相等,则返回整数值0。如果两个字符串不相等,则返回非零值,该值指示第一个字符串是否小于或大于第二个字符串。
解决方案:
#include <iostream>
int main()
{
auto ddd = L"122fff";
auto eee = L"122fff";
int gggg = wcscmp(ddd, eee);
if (gggg != 0)
{
std::cout << " False" << std::endl;
}
else
{
std::cout << " True" << std::endl;
}
std::cout << "Hello World!\n";
}
答案 1 :(得分:1)
wcscmp
返回int
,而不是bool
。输入后,它将返回负值。
将非零的int
值转换为bool
时,它变成true
。