c语言多重括号,大佬在吗,我用C写了一个去多重括号的函数,结果。。。
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include
#include
#include "malloc.h"
char * changeOrder(char *s);
struct Node
{
char *data;
struct Node * link;
};
struct Node * top1 = NULL;
struct Node * top2 = NULL;
void Push1(char *s)
{
struct Node * temp = (struct Node*) malloc(sizeof(struct Node));
temp->data = s;
temp->link = top1;
top1 = temp;
}
char * Pop1()
{
struct Node * temp;
if (top1 == NULL) return "No element found!";
temp = top1;
char *s = top1->data;
top1 = top1->link;
free(temp);
return s;
}
void Push2(char *s)
{
struct Node * temp = (struct Node*) malloc(sizeof(struct Node));
temp->data = s;
temp->link = top2;
top2 = temp;
}
char * Pop2()
{
struct Node * temp;
if (top2 == NULL) return "No element found!";
temp = top2;
char *s = top2->data;
top2 = top2->link;
free(temp);
return s;
}
//If a command has more than 50 character, or doesn't have ';'
//return 0. Else return 1.
int isLegal(char *s)
{
int smallNumber = 20;
if (strlen(s) < smallNumber) smallNumber = strlen(s);
for (int i = 0; i < smallNumber; i++)
{
if (s[i] == ';')
return 1;
}
return 0;
}
//Read one command form user input.
char *readCommand(char *s, int position)
{
if (isLegal(s) == 0)
{
return "Cannot find ';' in your command or the length"
" of your command is too long, try again!";
}
static char command[20];
int num = 0;
while (s[position] != ';')
{
command[num++] = s[position++];
}
command[num++] = ';';
return command;
}
char * changeOrder(char *s)
{
static char container[100];
int num = 0;
while (num < strlen(s))
{
if (s[num] == '(')
{
Push1("(");
num++;
}
else if (s[num] == ')')
{
while (true)
{
if (Pop1() == "(") break;
Push2(Pop1());
}
while (top2 != NULL)
{
strcat_s(container, Pop2());
}
}
else
{
char *t = readCommand(s, num);
Push1(t);
puts(t);
num += strlen(t);
}
}
while (top1 != NULL)
{
char *t = Pop1();
Push2(t);
}
while (top2 != NULL)
{
strcat_s(container, Pop2());
}
return container;
}
int main()
{
static char buf[] = { "command1;command2;command3;" };
puts(changeOrder(buf));
return 0;
}
c语言多重括号,大佬在吗,我用C写了一个去多重括号的函数,结果。。。相关推荐
- 在C语言的函数后标注small,大佬在吗,我用C写了一个去多重括号的函数,结果。。。...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "malloc.h" char * changeOrder(char *s); ...
- 多重选择函数c语言,大佬在吗,我用C写了一个去多重括号的函数,结果。。。...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 #include #include #include "malloc.h" char * changeOrder(char *s); ...
- Algorithm:C++语言实现之链表相关算法(单链公共结点问题、一般LCA、括号匹配、最长括号匹配、逆波兰表达式Reverse Polish Notation、直方图矩形面积、收集雨水问题)
Algorithm:C++语言实现之链表相关算法(单链公共结点问题.一般LCA.括号匹配.最长括号匹配.逆波兰表达式Reverse Polish Notation.直方图矩形面积.收集雨水问题) 目录 ...
- c语言switch语句支持的字符有哪些,C语言中switch()语句的括号内可以是什么型别的呢?...
C语言中switch()语句的括号内可以是什么型别的呢?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! C语言中swit ...
- java语言计算器怎么写_求助,一个计算器的括号功能怎么写啊。
求助,一个计算器的括号功能怎么写啊. import javax.swing.*; import javax.swing.event.*; import java.awt.*; import java. ...
- Go 语言创建者,大佬们的有趣的对话访谈
卡门(Carmen)和乔恩(Jon)与罗布·派克(Rob Pike)和罗伯特·格里塞梅尔(Robert Griesemer)(Go的创造者)讨论了它的起源,增长,影响力和未来.这是一部史诗般的剧集 ...
- 世上最杰出程序员,B 语言、Unix 之父为玩游戏,写了个操作系统
作者 | 年素清 责编 | 伍杏玲 出品 | 程序人生(ID:coder_life) Unix之父--肯•汤普森(Ken Thompson)被称作"世界上最杰出的程序员",他自学编 ...
- 使用c语言编程首先要新建,【C语言编程入门系列】—— 第三章,编写第一个C语言程序!...
导读:一般学一门计算机语言的第一堂上机课("上机"顾名思义,上计算机,机你太美),就是往屏幕输出"hello world",本章也不例外. 3.1 Hello, ...
- python括号匹配o(1)复杂度_Python面试题:使用栈处理括号匹配问题
括号匹配是栈应用的一个经典问题, 题目 判断一个文本中的括号是否闭合, 如: text = "({[({{abc}})][{1}]})2([]){({[]})}[]", 判断所有括 ...
最新文章
- what are the associated papers accepted at the Harvard business review from cambridge
- 从html表单内提取信息,如何从JavaScript中获取FormData中的数据?
- java 线程 cpu_java程序中线程cpu使用率计算
- linux实例 批量修改图片文件名
- 理论基础 —— 排序
- 兴业银行研发中心笔试题_2021国考笔试成绩即将发布,面试重点考什么?
- 【个人笔记】rabbitMQ下Fanout与Topic两种模式同时用注意事项
- 3. 盒子模型与兼容性
- String类中重写Object中的equals方法源码解析
- RTKLIB源码解析(三)、 Rinex文件读取(rinex.c)——2
- 分布式室内空气质量监测系统设计
- 自行搭建 Bitwarden 服务
- 自动驾驶领域常见专业英文名词及其含义
- 怎么安装原版win8系统?U盘安装原版win8系统方法
- 第三方Banner制作轮播图的具体方法
- Vue+H5 活动内容调用微信分享
- 来来来,做几道「送命题」
- 计算机工程怎么评,美国电气与计算机工程专业怎么样?评价如何
- wordpress与微信公众号对接
- 深度学习中的规范化(BN、LN等四种规范化)
热门文章
- 企业生产场景如何对CentOS进行分区
- 【转】删除已经存在的 TFS Workspace
- 理解快速生成树协议(RSTP)(二)
- 网络技术术语英汉对照
- 重启唯一的窗体实例,以及调用系统重启函数失败解决办法
- 转载 调用xvid 实现解码
- 【机器视觉】——相机和镜头的选择
- python args_Python可变参数*args和**kwargs用法实例小结
- sql2000导出mysql_如何将sql2000的数据库导入到mysql中?
- 第3章 Python 数字图像处理(DIP) - 灰度变换与空间滤波15 - 锐化高通滤波器 -拉普拉斯核(二阶导数)