现在,我有两个char
阵列,foo1[]
和foo2[]
。当我将它们转换为字符串并输出到控制台时,它们两个都显示为bar
。我知道我可以做这样的事情:如何比较两个char []数组的等价性?
int g;
for (int i=0;i<length.foo1;i++) { // loop from 0 to length of array
if (foo1[i]=foo2[i]) { // if foo1[0] and foo2[0] are the same char
g++; // increment a counter by 1
}
else // otherwise...
{
i=100; // set i to something that will halt the loop
}
if (g = length.foo1) { // if the incremented counter = length of array
return true; // arrays are equal, since g only increments
} // in the case of a match, g can ONLY equal the
else { // array length if ALL chars match
return false; // and if not true, false.
受信比较他们的信,但我猜有一个更简单的方法。有趣的是,我为comparing char[] for eqivalency c#
和类似关键字所做的大多数搜索结果都是关于比较STRING数组,或者比较字符串或字符数组,当数组的某部分匹配某个或另一个时,会导致大量的搜索结果...我无法找到任何关于测试char数组的简单方法是平等的。是逐步通过每个阵列的最佳方式?或者有一些方法可以比较foo1 = foo2或foo1 == foo2吗?这些都不适合我。
基本上,我需要测试,如果char foo1[]
和char foo2[]
都是{B,A,R}
你在说什么等价的?你想如何处理文化比较?或者你只对*序数*等价性感兴趣?请注意,这显然不是您实际的C#代码,因为'<>'在C#中无效,并且您试图增加一个未初始化的变量。哦,然后你的'if'语句没有布尔条件。真的不清楚那个代码*是做什么的...... – 2013-05-11 14:12:28
我会澄清这个问题......当我说“我可以做这样的事情”......我没有说明这是伪代码 - ISH。我也不知道“文化比较”一词的含义,所以我不确定是否需要担心。 – dwwilson66 2013-05-12 02:02:30
考虑“ss”和“ß”([Eszett](http://en.wikipedia.org/wiki/%C3%9F))。如果您正在进行文化敏感的比较,则根据您使用的文化,这些比较可能会被视为平等或不平等。 – 2013-05-12 06:45:59