Home > Backend Development > C++ > Given an input C program, remove the parentheses

Given an input C program, remove the parentheses

王林
Release: 2023-09-01 23:13:06
forward
755 people have browsed it

Given an input C program, remove the parentheses

问题

让我们通过删除表达式中的括号来创建一个简化的表达式。

解决方案

示例 1

Input: A string expression with bracket is as follows:
(x+y)+(z+q)
The output is as follows:
x+y+z+q
Copy after login

示例 2

The input is as follows:
(x-y+z)-p+q
The output is as follows:
x-y+z-p+q
Copy after login

Algorithm

Refer an algorithm to remove the brackets from a given input.

Step 1: Declare and read the input at runtime.

Step 2: Traverse the string.

Step 3: Copy each element of the input string into new string.

Step 4: If anyone parenthesis is encountered as an element, replace it with empty space.

Example

Following is the C program to remove the brackets from a given input −

#include<stdio.h>
int main(){
   int i=0,c=0,j=0;
   char a[100],b[100];
   printf("</p><p>Enter the string :");
   scanf("%s",a);
   while(a[i]!=&#39;\0&#39;){
      if((a[i]==&#39;(&#39;) && (a[i-1]==&#39;-&#39;)){
         (c=0)?j=i:j=c;
         while(a[i]!=&#39;)&#39;){
            if(a[i+1]==&#39;+&#39;)
               b[j++]=&#39;-&#39;;
            else if(a[i+1]==&#39;-&#39;)
               b[j++]=&#39;+&#39;;
            else if(a[i+1]!=&#39;)&#39;)
               b[j++]=a[i+1];
               i++;
         }
         c=j+1;
      }
      else if(a[i]==&#39;(&#39; && a[i-1]==&#39;+&#39;){
         (c==0)?j=i:j=c;
         while(a[i]!=&#39;)&#39;){
            b[j++]=a[i+1];
            i++;
         }
         j&ndash;;
         c=j+1;
      }
      else if(a[i]==&#39;)&#39;){
         i++;
         continue;
      } else {
         b[j++]=a[i];
      }
      i++;
   }
   b[j]=&#39;\0&#39;;
   printf("%s",b);
   return 0;
}
Copy after login

输出

执行上述程序时,会产生以下输出 -

Enter the string:(x+y)-z
x+y-z
Copy after login

The above is the detailed content of Given an input C program, remove the parentheses. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:tutorialspoint.com
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template