去掉括号里的内容(C语言)

题目描述
对字符串进行处理,把括号(英文符号)里的内容和括号本身从字符串中去掉,给出的待处理字符串中没有括号配对错误的情况,字符串长度不大于50个字符

输入
每行给出一个待处理字符串
输出
每行输出一个处理结果字符串
样例输入
abc(fg3)de
s(5)f(t)t
样例输出
abcde
sft
代码如下:


```c
#include<stdio.h>
#include<string.h>
int main()
{
	char a[55];

	while(scanf("%s",a)!=EOF)
	{
		int i;
		for(i=0;i<strlen(a);)
	    {
	    	if(a[i]=='(')
	    	{
	    		
	    		while(1)
	    		{
	    		
	    			if(a[i]==')')
	    			{
	    				i++;
	    			
	    				break;
					}
					i++;
					
	    			
				}
			}
		
			else
			{
		
			   printf("%c",a[i++]);
			}
		}
		printf("\n");
	
	}
 } 

在C语言中实现一个能处理带括号、小数和优先级的计算器程序,通常会采用递归下降解析法(Recursive Descent Parsing)或者是利用栈的数据结构来模拟计算过程。这我们提供一个简化版的思路: 首先,你需要定义一个函数,比如`calculate()`,它接受一个字符串作为输入,表示数学表达式。这个函数会通过遍历字符串,遇到数字就存储到一个变量,遇到运算符则进行相应的操作。 1. 定义两个临时变量存放当前和下一个字符,并创建一个堆栈用于存储操作数和运算符的暂时结果。 2. 遍历字符串,遇到: - 数字:将数字转换成double类型并入栈。 - 开始一个新的算术表达式(左大括号`{`):进入一个新的嵌套层级。 - 运算符:比较运算符的优先级,如果当前运算符的优先级低于或等于栈顶运算符,则弹出栈顶元素直到找到优先级高的运算符,然后进行运算,再将新的运算符压入栈中;否则直接将新运算符压入栈中。 - 结束一个算术表达式(右大括号`)`:依次弹出栈中的元素直到遇到左大括号,将这部分的结果与栈顶元素结合(通常是加法),然后继续处理剩余的表达式。 3. 最后,当遍历结束,栈中剩余的就是整个表达式的计算结果。 ```c #include <stdio.h> #include <stdlib.h> #include <string.h> // ...定义优先级队列等数据结构... int precedence(char op); double calculate(char *expression); int main() { char input[100]; printf("请输入数学表达式: "); fgets(input, sizeof(input), stdin); // 要注意去掉末尾的换行符 double result = calculate(input); printf("结果是: %.2f\n", result); return 0; } // ...定义优先级函数和计算函数,以及相关的辅助函数... ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值