社区
C语言
帖子详情
如何从一个字符串中解析 N个命令来执行?"xxxcls"就执行cls,"xxxcls*********dir..."就执行cls,再执行dir等等的
cqpp
2006-08-23 10:29:53
rt
...全文
227
17
打赏
收藏
如何从一个字符串中解析 N个命令来执行?"xxxcls"就执行cls,"xxxcls*********dir..."就执行cls,再执行dir等等的
rt
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
打赏
举报
回复
题目描述不清;
你总要给出你的字符串的具体格式,
比如,哪些是分隔符等;
2024-2030全球及
中
国PCB接触式探头行业研究及十五五规划分析报告.docx
2024-2030全球及
中
国PCB接触式探头行业研究及十五五规划分析报告
网站界面设计mortal0418代码
网站界面设计mortal0418代码
PHP毕业设计-校园失物招领系统源码+数据库.zip
PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可作为课程设计、期末大作业。包含全部项目源码、该项目可以直接作为毕设使用。项目都经过严格调试,确保可以运行! PHP毕业设计-校园失物招领系统源码+数据库.zip个人经导师指导并认可通过的高分毕业设计项目,主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者。也可
2024年神经酸行业分析报告.pptx
2024年神经酸行业分析报告.pptx
Java爬虫信息抓取的实现 完整实例(源码)
【Java爬虫】信息抓取的实现 完整实例(源码)
C语言
69,369
社区成员
243,082
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章