I have the following:
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;
}
The warning i get is comparison between an int and a char.
I tried to do the comparison (first char in the string vs. given char) also with strcmp like this:
if (strcmp(str, ")")==0) { stuff }
but it never goes in to 'stuff' even when the comparison (should) be correct.
how should i do it?
If str
is a C string (null-terminated array of chars), then str[0]
is a char.
Note that the type of quotes matters! ')'
is a char, while ")"
is a string (i.e. a ')'
char followed by a null terminator).
So, you may compare two chars:
str[0] == ')'
or you may compare two strings
strcmp(str, ")") == 0
naturally, (the second works if str
string really only contains that parenthesis).