qcode
  • 创作工场专业版,一问多答!更智能、更完整、更原创
  • 这是一个超强内容创作平台,它会写文章、做设计、绘图、敲代码,有问必答!
🔥点击使用-免登录深度版🔥

用C语言写一个lisp解释器

时间2023-04-04 23:17:49 提问来自 湖南省邵阳市 的网友 分类创作 浏览552
#include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct _node{ // 定义节点结构体,用于表示lisp语句中的每个单词 char* value; // 表示节点的值 struct _node* next; // 指向下一个节点 }Node; Node *head = NULL;//定义一个头指针,用来存储整条lisp语句链表的头节点 /* 将传入的字符串str分割成一个单词链表 */ void split(char *str) { Node *p, *q;//定义2个指针,p用于遍历整条字符串;q用于尾插法建立单词链表。 p = q = head;//将q和head都指向头节点。 while(*str) {//当字符不是'\0'时,即还有字符未处理时循环。 if(*str == '(' || *str == ')' || *str == ' ') {//如果是左右圆括号或者是一个空格 if(p != head && p->value[0] != '\0') {//如果p不是head(即不是从开始就出来的情况)而且上一步保存的value不是'\0' q->next = (Node *)malloc(sizeof(Node));//就新建1个新节点并将其地址保存到上一步新增加的节

不满意?免费深度重写!

免责声明:
以上内容除特别注明外均来源于网友提问,创作工场回答,未经许可,严谨转载。

上一篇 科比是谁啊 下一篇 建设教育强国的青年力 量