Пример
В первом операторе if очевидно планировалось проверить равенство двух аргументов, но проверка будет выполнена правильно только в том случае, когда аргументы различны.

void foo( char *string1, char *string2)
{
if( strcmp(string1, string2) ) {
//строки различны
}

if( !strcmp(string1, string2) ) {
//строки одинаковы
}
}

Решение
Для того чтобы избежать данного недоразумения, может быть рекомендован следующий способ написания кода.

void foo( char *string1, char *string2)
{
if(strcmp(string1, string2) != 0) {
//строки различны
}

if( strcmp(string1, string2) == 0) {
//строки одинаковы
}
}