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

算法

请参阅算法以从给定输入中删除括号。

第 1 步:在运行时声明并读取输入。

第二步:遍历字符串。

步骤3:将输入字符串的每个元素复制到新字符串中。

第 4 步:如果遇到任何括号作为元素,请将其替换为空格。

示例

以下是从给定输入中删除括号的 C 程序 -

#include<stdio.h>

int main(){

   int i=0,c=0,j=0;

   char a[100],b[100];

   printf("\nEnter 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;

}

输出结果

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

Enter the string:(x+y)-z

x+y-z

以上是 C 程序从给定的输入中删除括号。 的全部内容, 来源链接: utcz.com/z/322804.html

回到顶部