Brackets are well balanced if each
'(' has its
')'. The argument
str represents the array of characters which contains the expression.
The following function returns 0 if the brackets in the expression are well balanced, and a nonzero integer if not.
int balanced(char *str)
{
int balance=0; // Balance indicator.
char c; // Current character.
int i=0; // Character index.
// Read characters.
while((c=str[i++]) != '\0')
{
// When '(' is read, increase indicator.
if(c=='(') balance++;
// When ')' is read, decrease indicator.
if(c==')') balance--;
}
return balance;
}