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;

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/268543.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mac配置telnet

/bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" brew install telnet

linux下的DNS服务器详解

DNS&#xff1a;Domain Name System 域名管理系统 域名是由圆点分开一串单词或缩写组成的&#xff0c;每一个域名都对应一个惟一的IP地址&#xff0c;这一命名的方法或这样管理域名的系统叫做域名管理系统。 大家都知道&#xff0c;当我们在上网的时候&#xff0c;通常输入的是…

c语言一个循环重新输入密码,想程序高手求助--用C语言来编辑一个输入密码的程序...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼/*--------实现密码的隐式输入-----------------*/inputpw(char *password,int len) /*len为密码长度*/{int i0; /*密码数组索引值,同时也表示记录已显示*的数目*/char ch;fflush(stdin); /*清洗流&#xff0c;以防妨碍密码正确输入…

怎样玩转千万级别的数据

作者&#xff1a;Sam Xiaowww.cnblogs.com/xcj26/p/3305789.html如有好文章投稿&#xff0c;请点击 → 这里了解详情大数据处理是一个头疼的问题&#xff0c;特别当达不到专业DBA的技术水准时&#xff0c;对一些数据库方面的问题感到无奈。所以还是有必要了解一些数据库方面的技…

c语言多维数组基础知识,C语言基础第7章多维数组.ppt

C语言基础第7章多维数组7.2 二维数组及多维数组二维数组的定义定义方式&#xff1a;  数据类型 数组名[常量表达式][常量表达式]&#xff1b;;二维数组理解;二维数组元素的引用形式&#xff1a; 数组名[下标][下标]二维数组元素的初始化分行初始化&#xff1a;;程序举例;例 …

关于待机、休眠、睡眠的区别和优缺点

Windows中很早就加入了待机、休眠等模式&#xff0c;而Windows Vista中更是新加入了一种叫做睡眠的模式&#xff0c;可是很多人还是习惯在不使用电脑的时候 将其彻底关闭。其实充分利用这些模式&#xff0c;我们不仅可以节约电力消耗&#xff0c;还可以用尽可能短的时间把系统恢…

如何制作pem公钥证书和私钥证书

1.先下载openssl 下载地址 https://pan.baidu.com/s/1kUK1MJX 2.下载之后保存在某个盘里&#xff08;例如在F:/cer/openssl&#xff09; 3.打开windows的 cmd&#xff0c;切换到目录 F:/cer/openssl/openssl\bin 4.生成商户RSA私钥(执行如下命令) openssl genrsa -out rsa_…

苏州大学电子信息学院C语言,电子信息学院

专著Z. Zhu and A. K. Nandi, (2014) Automatic Modulation Classification - Principles, Algorithms, and Applications. Wiley (to be published in January 2015)期刊论文Z. Zhu, A. K.Nandi, (2014) Blind Digital Modulation Classification using Minimum Distance Cent…

网络协议集合2

这张是更加详细的网络协议图&#xff0c;希望会对学习有一定作用。学习网络知识&#xff0c;一定要打好框架&#xff0c;做到心中有“图”&#xff0c;通常我们只是接触TCP/IP协议&#xff0c;但对于其他体系和结构&#xff0c;也应当有所了解&#xff0c;这样能更好地理解网络…

C语言二月天数计算,关于计算两个日期间天数的代码,大家来看看

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼这是原贴:http://post.baidu.com/f?kz100411727这是原码:#include "stdio.h"main(){long int i,a[2],b[2],c[2],x[12]{0,31,59,90,120,151,181,212,243,273,304,334},y,z[2];scanf("%ld-%ld-%ld %ld-%ld-%ld"…

JAVA中ACTION层, SERVICE层 ,MODLE层 和 DAO层的功能区分

JAVA中ACTION层, SERVICE层 &#xff0c;MODLE层 和 DAO层的功能区分 首先这是现在最基本的分层方式&#xff0c;结合了SSH架构。modle层就是对应的数据库表的实体类。Dao层是使用了hibernate连接数据库、操作数据库&#xff08;增删改查&#xff09;。Service层&#xff1a;引…

自定义权限 android,如何在Android中使用自定义权限?

蛊毒传说我创建了一个测试代码&#xff0c;您可以使用它并测试您的权限。有两个应用程序PermissionTestClient声明权限并使用此权限保护其活动。这是清单文件&#xff1a;<?xml version"1.0" encoding"utf-8"?> …

.net c# 中获得GridView的EmptyDataTemplate中的控件的方法(转)

拖了一个GridView到页面&#xff0c;当没有数据时在EmptyDataTemplate中显示添加的TextBox&#xff0c;但EmptyDataTemplate中不像FooterTemplate可以直接TextBox BankCard GridView1.FooterRow.FindControl("BankCard") as TextBox;来获取。 研究了一翻&#xff0c;…

MYSQL在centos上主从配置

主从配置理论传送门:http://blog.csdn.net/hguisu/article/details/7325124 具体配置方案: 一&#xff1a;MYSQL主从配置 1.1 部署环境 主(master_mysql): 192.168.1.200 OS:CentOS 6.5 从(slave_mysql): 192.168.1.201 OS:CentOS 6.5 1.2 安装mysql 主和从: yu…

Android实现支付宝AR功能,Android RecyclerView 实现支付宝首页效果

Android RecyclerView 实现支付宝首页效果[TOC]虽然我本人不喜欢支付宝的,但是这个网格本身其实还是不错的,项目更新中更改了一个布局为网格模式,类似支付宝.(估计是产品抄袭的.,我不管设计,只管实现就好.)类名描述RecyclerView.Adapter托管数据集合&#xff0c;为每个Item创建…