.net - 托管 C++ 字符串比较工作奇怪

标签 .net c++-cli visual-c++-2010 base-class-library

我试图比较 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;

最佳答案

事实证明,问题在于将 char* 转换为字符串。 char* 数组未正确以空值终止。

关于.net - 托管 C++ 字符串比较工作奇怪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9105514/

相关文章:

c++ - Common LNK 2019 - 头文件中的函数声明 - 源文件中的定义

C++0x Lambda 开销

c++ - Visual C++ 2010 速成版 : How to use with Qt?

c++ - 将 make_shared 与 protected 构造函数 + 抽象接口(interface)一起使用

c# - .NET 是否有任何框架来填充测试数据?

.net - 来自网站但不是来自控制台应用程序的 Web 服务调用中的 EndpointNotFoundException

c# - 为什么 DefaultIfEmpty 是这样实现的?

c# - 什么可以映射到 Entity Framework ?

random - C++ random_shuffle() 它是如何工作的?

c# - 托管 C++ 程序集能否将对象返回给 C#?