Comparer entre un char dans une chaîne de caractères à un char

J'ai le texte suivant:

int findPar(char* str)
{
int counter=0;

while (*str) 
{
    if(str[0] == "(") <---- Warning
    {
        counter++;
    }
    else if (str[0]== ")") <---- Warning
    {
        counter--;
    }
    if (counter<0) 
    {
        return 0;
    }
    str++;
}

if (counter!=0) 
{
    return 0;
}
return 1;
}

L'avertissement que j'obtiens est la comparaison entre un int et un char.

J'ai essayé de faire la comparaison (le premier caractère dans la chaîne de contre donné char) également avec strcmp comme ceci:

    if (strcmp(str, ")")==0) { stuff }

mais il ne va jamais à "autre chose", même si la comparaison (devrait) être correct.

comment dois je faire?

Utilisez des guillemets simples. ")" == )\0 littéralement, tandis que ')' == ).
strcmp( str, ')' ) ==0) ne fonctionne pas parce que vous êtes la comparaison de l'ensemble de la chaîne de caractères char* contre un seul caractère littéral. Il pourrait fonctionner si vous n'avez strcmp( str[0], ')') == 0 je pense
strcmp attend des paramètres de chaîne de caractères. ')', un char de la valeur 41 seront convertis en (char*)41. Donc la fonction va chercher dans la mémoire de l'adresse 41, l'espoir de voir une chaîne de caractères et au lieu - BAM! Erreur de segmentation.
OK, je n'étais pas sûr de la raison pour laquelle j'ai annoté je pense que pensez, merci pour cette remarque

OriginalL'auteur Itzik984 | 2012-05-07