社区
C语言
帖子详情
如何从一个字符串中解析 N个命令来执行?"xxxcls"就执行cls,"xxxcls*********dir..."就执行cls,再执行dir等等的
cqpp
2006-08-23 10:29:53
rt
...全文
233
17
打赏
收藏
如何从一个字符串中解析 N个命令来执行?"xxxcls"就执行cls,"xxxcls*********dir..."就执行cls,再执行dir等等的
rt
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cqpp
2006-08-26
打赏
举报
回复
没有好点的办法了吗?
tailzhou
2006-08-23
打赏
举报
回复
算法的复杂度应该是 o(n*m); n是你的流的长度;m是你的命令表元素的个数;
tailzhou
2006-08-23
打赏
举报
回复
那是命令解析的处理的问题了。跟是不是流以及用不用缓冲区都没什么关系;
也可以考虑用kmp;
struct instruct
{
int len; //指令的长度
char word[50]; //指令
int kmp[50]; //指令的kmp值
int idx; //模式中的当前位置;
}
struct instruction instructions[100]; 你的指令表;
int c;
while ((c=yougetchar())!=EOF)
{
for (i=0;i<100;++i)
{
//c跟instructions[i].word[idx]比较,依据结果更新idx;
//当idx==len时,找到指令,重新设置instructions数组各元素的idx
}
}
具体实现参见kmp算法;
cqpp
2006-08-23
打赏
举报
回复
你怎么从缓冲区识别命令?挨个命令使用strstr?
tailzhou
2006-08-23
打赏
举报
回复
为什么一定要从流里识别数据??
先保存到缓冲区,边处理边读,不更方便么?
cqpp
2006-08-23
打赏
举报
回复
关键是如何从流中识别出命令?要考虑效率
cqpp
2006-08-23
打赏
举报
回复
我准备做成一张精心准备的命令表(按字典一样排好顺序),然后对单个字符来了做成状态机处理.看看如何?
tailzhou
2006-08-23
打赏
举报
回复
缓冲区具体要多大,
以及什么时候再从流继续读取,
取决于你的具体的查找算法.
tailzhou
2006-08-23
打赏
举报
回复
你可以用一个字符数组来做缓冲呀;
比如你的命令的最长的是10个字符;
那么你就建立一个20长度的字符数组,
流(从串口来的)的信息先到你的数组做缓冲,
数组里的数据处理掉n个(10个以上)的字符后,移动未处理的字符到数组的开头,然后在读取n个字符到数组的末尾;
cqpp
2006-08-23
打赏
举报
回复
当然 ,命令表我是有,不然怎么执行命令呢?
cqpp
2006-08-23
打赏
举报
回复
上面的几种都考虑过!关键我的数据来源是一个流一样的(从串口来的)。不可能每收到一个字符就去做一遍查找!
robin_yao
2006-08-23
打赏
举报
回复
总要给出所有的 命令字符 汇总表 吧
否则怎么判断哪些是 命令?
chenhu_doc
2006-08-23
打赏
举报
回复
把所有的命令一字符串的形式放在一个字符串数组中。
然后对给定的字符串中做匹配!
每得到一个匹配就; system("matched order");
1。考虑KMP算法匹配!
2。c中的string函数:strstr,得到匹配的位置,然后通过position排序!根据排序后的字符串数组来依次执行system命令!
3。 如果追求效率,那么可以用索引来对即定的命令做初始化!
tailzhou
2006-08-23
打赏
举报
回复
cls dir是你自己的自定义函数??
如果你有自定义的函数xcls,那不是要执行xcls了??
cqpp
2006-08-23
打赏
举报
回复
没有分隔符,找到就执行!而且是自己的程序中实现
wlfc
2006-08-23
打赏
举报
回复
这个软件可以完成这个功能:通用字符串表达式编译运行库FORCAL
网址:http://www4.skycn.com/soft/23045.html
tailzhou
2006-08-23
打赏
举报
回复
题目描述不清;
你总要给出你的字符串的具体格式,
比如,哪些是分隔符等;
Google Gson
解析
Json数据应用实例
在Java开发
中
,Google Gson库是
一个
非常流行的工具,用于将Java对象转换为JSON
字符串
,以及将JSON
字符串
反序列化回Java对象。这个“Google Gson
解析
Json数据应用实例”旨在深入探讨Gson库的使用,帮助开发者更好地...
SBJson
解析
库
在这段代码
中
,`objectWithString:`方法会尝试将输入的JSON
字符串
解析
为
一个
Objective-C对象。如果
解析
成功,返回的对象可以直接用于程序逻辑;如果
解析
失败,`objectWithString:`会抛出异常,你可以通过传递
一个
...
跟我一起学Makefile(PDF版)
9. **make
命令
的使用**:除了基本的`make`
命令
来
执行
Makefile,还有`make clean`用于清除编译产生的临时文件,`make all`用于构建所有目标,`make -j N`则可以并行地运行N个
命令
,加快构建速度。 通过阅读《跟我...
The C Programming Language 第二版 英文版
- **7.8.3 ungetc**:讲解如何回退
一个
字符到输入流。 - **7.8.4
命令
执行
**:说明如何在程序
中
执行
外部
命令
。 - **7.8.5 存储管理**:介绍内存分配和释放的相关函数。 - **7.8.6 数学函数**:列举常用的数学...
数据库面试笔试题集
- **项目文件的组合**:当把
一个
项目编译成
一个
应用程序时,所有的项目文件将被组合到
一个
单一的应用程序文件
中
。 - 正确答案为**A**。 #### 15. 数据库、数据库系统、数据库管理系统的区别 - **数据库系统**:包含...
C语言
70,020
社区成员
243,264
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章