In this article we will learn to implement a C program to check balanced parentheses. A C program is provided below to match parentheses in a giving string.
The logic used is to maintain counts for each occurrence of ‘(‘ and ‘)’. If the difference between these counts is zero, then we can say parentheses match. Otherwise, there is a mismatch.
The program is as follows:
#include <stdio.h>
#include <conio.h>
#include <string.h>
int matching(char *str)
{
int lcount = 0, rcount = 0;
for(int i = 0; i < strlen(str); i++)
{
if(str[i] == '(')
lcount++;
if(str[i] == ')')
rcount++;
}
if(lcount - rcount == 0)
return 1;
else
return 0;
}
int main()
{
char a[20];
printf("Enter a string: ");
gets(a);
int result = matching(a);
if(result == 1)
{
printf("All parentheses matched!");
}
else
{
printf("Parentheses mismatch!");
}
getch();
return 0;
}
Input and output for the above program is as follows:
Enter a string: a+(b-c)*(d/e
Parentheses mismatch!
Enter a string: a+(b-c)*(d/e)
All parentheses matched!
Suryateja Pericherla, at present is a Research Scholar (full-time Ph.D.) in the Dept. of Computer Science & Systems Engineering at Andhra University, Visakhapatnam. Previously worked as an Associate Professor in the Dept. of CSE at Vishnu Institute of Technology, India.
He has 11+ years of teaching experience and is an individual researcher whose research interests are Cloud Computing, Internet of Things, Computer Security, Network Security and Blockchain.
He is a member of professional societies like IEEE, ACM, CSI and ISCA. He published several research papers which are indexed by SCIE, WoS, Scopus, Springer and others.
Leave a Reply