卓越飞翔博客卓越飞翔博客

卓越飞翔 - 您值得收藏的技术分享站
技术文章17079本站已运行3324

给定输入的C程序,移除括号

给定输入的C程序,移除括号

问题

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

解决方案

示例 1

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

示例 2

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

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>Enter the string :");
   scanf("%s",a);
   while(a[i]!=\'\0\'){
      if((a[i]==\'(\') && (a[i-1]==\'-\')){
         (c=0)?j=i:j=c;
         while(a[i]!=\')\'){
            if(a[i+1]==\'+\')
               b[j++]=\'-\';
            else if(a[i+1]==\'-\')
               b[j++]=\'+\';
            else if(a[i+1]!=\')\')
               b[j++]=a[i+1];
               i++;
         }
         c=j+1;
      }
      else if(a[i]==\'(\' && a[i-1]==\'+\'){
         (c==0)?j=i:j=c;
         while(a[i]!=\')\'){
            b[j++]=a[i+1];
            i++;
         }
         j–;
         c=j+1;
      }
      else if(a[i]==\')\'){
         i++;
         continue;
      } else {
         b[j++]=a[i];
      }
      i++;
   }
   b[j]=\'\0\';
   printf("%s",b);
   return 0;
}</p>

输出

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

'
Enter the string:(x+y)-z
x+y-z
卓越飞翔博客
上一篇: 使用C++编写的查询在范围内具有第K位设置的数组元素数量的代码
下一篇: 返回列表
留言与评论(共有 0 条评论)
   
验证码:
隐藏边栏