【发布时间】:2012-02-24 16:55:29
【问题描述】:
我正在尝试比较 2 个字符串,但结果很奇怪。在某些计算机上,比较可以正常工作,而在其他计算机上则不能。代码是使用托管 C++ 在 Visual Studio 2010 中编写的。我检查了字符串,它们看起来相同。有什么想法吗?
String^ str1 = "string1";
char[] chars = "string1";
String^ str2 = new String(chars);
if(String::Compare(str1,str2)==0)
return true;
else
return false;
【问题讨论】:
-
String::Compare是文化敏感的;如果你想使用不变的文化,那么使用不同的重载以CultureInfo。 -
我看到了,但我对文化不是很熟悉。我该怎么做?
-
用
StringComparison::InvariantCulture调用this overload 无疑是最简单的方法,但是每个重载都带有示例代码——阅读文档。 -
InvariantCulture 仍然失败。其余的也一样。
-
那么您需要显示更多实际显示问题的代码(例如,您甚至没有在显示的代码中检查
String::Compare的结果)。 SSCCE
标签: .net c++-cli visual-c++-2010 base-class-library