我对C ++很新,在尝试比较两个字符时遇到了问题,这是一个例子:
#define PartOne "He"
#define PartTwo "llo"
char Final1Var[] = PartOne PartTwo;
char ComapreVars[] = "Hello";
if(Final1Var == ComapreVars)//This is were the problem occurs, the chars are supposed to be equal to each other BUT for some reason the 'if' statement ends up determining they're not?
InGameDialog::Alert("They Match");
else
InGameDialog::Alert("They Don't Match");
代码出了什么问题?我无法想象为什么这不起作用?有什么建议吗?
答案 0 :(得分:-1)
在c ++字符数组中无法使用==运算符进行比较,您必须使用strcmp函数或字符串比较函数。
答案 1 :(得分:-1)
这是一个非常常见的问题。一旦我在其他问题中找到了一个好的答案,我会将其标记为重复。
与此同时,您不是在比较char
,而是在比较char[]
,这是完全不同的。你想要使用strcmp,strncmp或std :: string类型将是一个更好的解决方案。
What is array decaying?对您的代码中发生的事情及其原因有一些合理的解释。