括号匹配c语言怎么输入文字符号_括号匹配c语言怎么输入文字符号的

括号匹配c语言怎么输入文字符号_括号匹配c语言怎么输入文字符号的c语言 想要输入一个括号,编写一个C++程式,解决括号匹配问题,即匹配一个字串中的左右括号….编写一个C++程式,解决括号匹配问题,即匹配一个字串中的左右括号.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#

c语言 想要输入一个括号,编写一个C++程式,解决括号匹配问题,即匹配一个字串中的左右括号….
  编写一个C++程式,解决括号匹配问题,即匹配一个字串中的左右括号.以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  d04740fbf2d0b4bab0cf427c404a2d45.png

  编写一个C++程式,解决括号匹配问题,即匹配一个字串中的左右括号.

  #include using namespace std;#define STACK_INT_SIZE 100#define STACKINCREMENT 10#define OK 1#define ERROR 0typedef char SElemType;typedef int Status;typedef struct { SElemType *base; SElemType *; int stacksize;}SQStack;Status INitStack(SQStack &S){ S.base=new SElemType[STACK_INT_SIZE]; if(!S.base) { cout<=S.stacksize) { S.base=(SElemType*)realloc(S.base,(S.stacksize+STACKINCREMENT)*sizeof(SElemType)); if(!S.base) { cout<>e; if(e!='('&&e!=')'&&e!='['&&e!=']'&&e!='{'&&e!='}') { cout<

  如何用c语言编写一个括号匹配程式

  #include

  void main()

  {

  int Token = 0;

  char s[50];

  bool IsRight = false;

  cout<

  cin>>s;

  for(int i = 0;s[i]!='0';i++)

  {

  if(s[i]=='('){

  Token++;

  }

  if(s[i]==')'){

  Token–;

  if(Token<0)

  break;

  }

  }

  if(Token!=0)

  cout<

  else

  cout<

  cout<

  }

  c++栈的问题,写个程式解决括号的匹配问题

  int Match(char *exp,int n)

  {

  int i=0;

  char e;

  SqStack *st;

  InitStack(st);

  while(i

  {

  if(exp[i]=='(')

  push(st,exp[i]);

  else if(exp[i]==')')

  {

  if(GetTop(st,e)==1)

  {

  if(e!='(')

  return 0;

  else

  Pop(st,e);

  }

  else

  return 0;

  }

  i++;

  }

  if(StackEmpty(st)==1)

  return 1;

  else

  return 0;

  }

  急!括号匹配问题

  你用了exit和malloc函式

  需要新增标头档案

  #include

  试过了,新增标头档案后没有编译错误。

  函式的 栈引数 都改成 栈指标引数

  如:

  int initstack(sqstack S);

  改成:

  int initstack(sqstack *S);

  函式体也要做相应修改。

  c++ 找错误 (括号匹配问题)

  #include

  #include

  const int maxsize=100;最大元素个数

  typedef char Datatype;

  class seqstack

  {

  int ;

  Datatype *s;

  public:

  seqstack();建构函式

  ~seqstack();解构函式

  void push(Datatype x);

  void match(char *k);

  };

  seqstack temp;

  seqstack::seqstack()

  {

  =0;

  s=new Datatype[maxsize];

  }

  seqstack::~seqstack()

  {

  delete []s;

  }

  void seqstack::push(Datatype x)

  {

  if(==maxsize)

  {

  cout<

  exit(0);

  }

  else

  {

  s[]=x;

  }

  }

  bool ma(char a,char b)

  {

  if((a=='('&&b==')')||(a=='['&&b==']')||(a=='{'&&b=='}'))

  return true;

  else

  return false;

  }

  void seqstack::match(char *k)

  {

  int u,v;

  for(int i=0;k[i]!='0';i++)

  {

  if(k[i]=='('||')'||'['||']'||'{'||'}')

  {

  temp.push(k[i]);

  ++;

  }

  }

  if(%2==1)

  {

  cout<

  }

  else

  {

  u=/2;

  v=u+1;

  while(u!=-1)

  {

  if(ma(s[u],s[v]))

  {

  u–;

  v++;

  }

  else

  {

  cout<

  break;

  }

  }

  if(u==-1)

  cout<

  }

  }

  void main()

  {

  char p[10];

  cout<

  cin>>p;

  temp.match(p);

  } 只是修改编译错误吗? 我改好了 ,还修改了个死回圈 ,你少了一边大括号,还有case那加上了break

  c++ 如何在档案中匹配一个字串

  如果档案不是太大(比你当前的可用剩余记忆体小),且档案中不包含“0”这样的位元组,直接把档案用一个缓冲调进记忆体,然后用字串搜寻函式搜就是了;

  如果档案确实太大,或者档案中可能包含“0”这样的位元组,那么你需要自己编写模式匹配函式(就是与字串搜寻函式类似功能的函式,网上有类似的C++原始码,但功能还不够)。

  对含0资料的适应比较简单,搜寻函式只要额外加两个缓冲区资料长度的引数传进去就行(代替以0结尾的字串处理机制)——一个主缓冲长度,一个子串长度。

  而跨缓冲区的搜寻比较麻烦,因为搜寻字很可能跨在两个相邻缓冲之间,这时搜寻函式需要返回两个资讯:一是搜寻到的子串位置,二是本缓冲区内匹配了多少位元组的子串(完全匹配时就是匹配了整个子串的长度);如果需要多次搜寻子串在缓冲中的所有位置,则还需要把搜寻起始位置做引数传进搜寻函式。当然,这时子串在缓冲中搜索到的各位置必须转换为档案的绝对座标才行。

  跨缓冲区的搜寻,上一缓冲的最后搜寻结果(位置、已匹配长度)要带进下一缓冲的搜寻,这些必要资讯也要传进搜寻函式,因此这是个复杂而引数众多的函式。

  括号匹配问题(pascal)

  const

  op1='{[

  op2='}]>)';

  var

  s:array[1..1000] of char;

  ,p1,p2,l,i:longint;

  st:string;

  ch:char;bj:boolean;

  begin

  readln(st);

  :=0;l:=length(st);

  bj:=true;

  for i:=1 to l do begin

  ch:=st[i];

  if pos(ch,op1)<>0 then begin

  inc();s[]:=ch;

  end

  else if pos(ch,op2)<>0 then begin

  if =0 then begin bj:=false;break;end

  else begin

  p2:=pos(ch,op2);

  ch:=s[];

  p1:=pos(ch,op1);

  if p1=p2 then dec()

  else begin bj:=false;break;end;

  end;

  end;

  end;

  if =0 and bj then writeln('yes')

  else writeln('no');

  end.

  C语言括号匹配问题

  用堆叠解决。

  C圆括号匹配程式问题

  这程式码也太多了。。LZ你可以到我空间里参考“括号匹配”这篇文章,之前给一个提问者写的。不一定是你想要的功能,但你可以按那个思路来改。

  帮忙改一下这个C++括号匹配问题

  #include

  #include

  using namespace std;

  bool invalid(char* s)

  {

  stack st;

  st.empty();

  while(*s!='0')

  {

  if(*s == '['|| *s == '(')

  st.push(*s);

  else

  {

  if(*s == ']')

  {

  if(st.() != '[')

  {

  return true;

  }

  else

  st.pop();

  }

  if(*s == ')')

  {

  if(st.()!='(')

  {

  return true;

  }

  else

  st.pop();

  }

  }

  s++;

  }

  return !st.empty();

  }

  int main()

  {

  int i;

  char a[50];

  cin>>a;

  if(invalid(a))

  cout<

  else

  cout<

  cin>>i;

  return 0;

  }

  分页:

  1

  23

2024最新激活全家桶教程,稳定运行到2099年,请移步至置顶文章:https://sigusoft.com/99576.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。 文章由激活谷谷主-小谷整理,转载请注明出处:https://sigusoft.com/97325.html

(0)
上一篇 2024年 5月 21日 上午7:21
下一篇 2024年 5月 21日 上午7:36

相关推荐

关注微信