我想做两个字符串比较并使用两个不同的if条件。有没有更好的方法在一个if条件
中进行字符串比较if (strcmp(Buff1(), Config1) == 0)
{
if (strcmp(Buff2, Config2) == 0)
{
// my code goes here
}
}
答案 0 :(得分:1)
等效代码为:
if ((strcmp(Buff1(), Config1) == 0)) &&
(strcmp(Buff2, Config2) == 0))
{
// my code goes here
}
注意:编译器应为两个代码示例生成相同的机器代码。不同之处在于美观,主要针对代码的读者。
添加else
子句时,确实会有所不同:
if (strcmp(Buff1(), Config1) == 0)
{
if (strcmp(Buff2, Config2) == 0)
{
// my code goes here
}
else
{
// else 1
}
}
else
{
// else 2
}
与:相比:
if ((strcmp(Buff1(), Config1) == 0)) &&
(strcmp(Buff2, Config2) == 0))
{
// my code goes here
}
else
{
// Single else clause
}
答案 1 :(得分:0)
除了Klas的回答(以防你不熟悉AND运算符) - AND运算符('&&')检查第一个条件并继续检查第二个条件 - 只有 - 第一个条件为真。 因此,在您的具体问题中,它会检查前几个字符串是否相等,并且仅当为真(相等)时,它会检查第二个字符串是否相等。
答案 2 :(得分:0)
如果您对这些字符串一无所知,那么显而易见的优化(尚未提及)是首先执行更有可能失败的比较。