Compare between a char in a string to a given char

c, c++, strcmp, string

Solution

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).

Problem

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?

Original source